<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Mehdi Kabbaj</title>
    <description>The latest articles on DEV Community by Mehdi Kabbaj (@tresor4k).</description>
    <link>https://dev.to/tresor4k</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3702098%2F5ae6324e-224f-46be-b3aa-4143635d573a.jpg</url>
      <title>DEV Community: Mehdi Kabbaj</title>
      <link>https://dev.to/tresor4k</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/tresor4k"/>
    <language>en</language>
    <item>
      <title>Barème kilométrique 2022-2026 : la série complète des coefficients (et un gel de 4 ans)</title>
      <dc:creator>Mehdi Kabbaj</dc:creator>
      <pubDate>Fri, 10 Jul 2026 14:23:18 +0000</pubDate>
      <link>https://dev.to/tresor4k/bareme-kilometrique-2022-2026-la-serie-complete-des-coefficients-et-un-gel-de-4-ans-3eji</link>
      <guid>https://dev.to/tresor4k/bareme-kilometrique-2022-2026-la-serie-complete-des-coefficients-et-un-gel-de-4-ans-3eji</guid>
      <description>&lt;p&gt;Chaque printemps, des millions de salariés français arbitrent entre l'abattement forfaitaire de 10 % et les &lt;strong&gt;frais réels&lt;/strong&gt; — et pour la plupart d'entre eux, le poste dominant est la voiture, évaluée via le barème kilométrique publié par l'administration fiscale. En reconstituant la série complète des coefficients sur cinq déclarations (2022-2026), un fait saute aux yeux : &lt;strong&gt;le barème n'a plus bougé depuis 2023&lt;/strong&gt;. Dataset complet en CSV (CC BY 4.0) en fin d'article.&lt;/p&gt;

&lt;h2&gt;
  
  
  Quatre déclarations, zéro revalorisation
&lt;/h2&gt;

&lt;p&gt;La chronologie récente tient en trois actes :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;2022&lt;/strong&gt; : +10 % (arrêté du 1er février 2022), réponse directe à la flambée des carburants.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;2023&lt;/strong&gt; : +5,4 % (arrêté du 27 mars 2023).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;2024, 2025, 2026&lt;/strong&gt; : reconduction pure et simple. Aucun arrêté de revalorisation — la brochure pratique de la DGFiP et service-public.gouv.fr le confirment : « les barèmes kilométriques ne sont pas revalorisés, leur niveau a été augmenté pour la dernière fois en 2023 ».&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Concrètement, un salarié qui parcourt 10 000 km/an en 5 CV déduit &lt;strong&gt;4 965 €&lt;/strong&gt; — le même montant depuis quatre déclarations, pendant que l'entretien, l'assurance et les pièces ont continué d'augmenter. À l'inverse, le mécanisme a joué à plein en 2022-2023 : le même trajet ne valait « que » 4 710 € à la déclaration 2022.&lt;/p&gt;

&lt;h2&gt;
  
  
  La structure du barème (souvent mal comprise)
&lt;/h2&gt;

&lt;p&gt;Le barème n'est pas un simple tarif au kilomètre : c'est une &lt;strong&gt;fonction affine par morceaux&lt;/strong&gt;. Pour une automobile, trois tranches (jusqu'à 5 000 km, 5 001-20 000 km, au-delà), et c'est la tranche intermédiaire qui piège les calculs de tête : &lt;code&gt;frais = distance × coefficient + constante&lt;/code&gt;. En 5 CV, 2026 : &lt;code&gt;d × 0,357 + 1 395&lt;/code&gt;. Les motos et cyclomoteurs ont leurs propres tables (tranches à 3 000/6 000 km), et les &lt;strong&gt;véhicules électriques bénéficient d'une majoration uniforme de +20 %&lt;/strong&gt; sur le montant final (II de l'article 6 B, annexe IV du CGI).&lt;/p&gt;

&lt;h2&gt;
  
  
  Pourquoi un dataset ?
&lt;/h2&gt;

&lt;p&gt;Les coefficients sont éparpillés dans des arrêtés successifs (Légifrance JORFTEXT000045160753, JORFTEXT000047416556) et des pages ministérielles qui ne conservent que l'année courante. La série consolidée — 135 lignes : 5 déclarations × 9 catégories de véhicules × 3 tranches, avec bornes kilométriques, constantes et sources — n'existait nulle part en format réutilisable. Elle est désormais publiée en &lt;strong&gt;CSV sous licence CC BY 4.0&lt;/strong&gt;, chaque ligne portant son arrêté source et son identifiant Légifrance.&lt;/p&gt;

&lt;p&gt;Pour l'utiliser sans coder : le &lt;a href="https://macalculatriceenligne.com/finance/impots/calcul-frais-reels/" rel="noopener noreferrer"&gt;calculateur de frais réels&lt;/a&gt; applique ce barème (avec la majoration électrique et le plafond 7 CV), et le &lt;a href="https://macalculatriceenligne.com/auto/calcul-prix-essence-km/" rel="noopener noreferrer"&gt;calculateur de prix de l'essence au kilomètre&lt;/a&gt; permet de comparer le coût réel du carburant à la déduction obtenue. Compilation : équipe Données &amp;amp; Recherche de &lt;a href="https://macalculatriceenligne.com/" rel="noopener noreferrer"&gt;Ma Calculatrice en Ligne&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>france</category>
      <category>data</category>
      <category>opendata</category>
      <category>tax</category>
    </item>
    <item>
      <title>I computed take-home pay for a $100k salary in all 50 US states — the gap is $8,276 a year</title>
      <dc:creator>Mehdi Kabbaj</dc:creator>
      <pubDate>Tue, 07 Jul 2026 14:39:27 +0000</pubDate>
      <link>https://dev.to/tresor4k/i-computed-take-home-pay-for-a-100k-salary-in-all-50-us-states-the-gap-is-8276-a-year-281p</link>
      <guid>https://dev.to/tresor4k/i-computed-take-home-pay-for-a-100k-salary-in-all-50-us-states-the-gap-is-8276-a-year-281p</guid>
      <description>&lt;p&gt;I run a small data project called &lt;a href="https://statetakehome.com" rel="noopener noreferrer"&gt;StateTakeHome&lt;/a&gt;, where every tax rate is pulled from official publications (IRS Rev. Proc. 2025-32, SSA, each state's Department of Revenue) and labeled with its tax-year vintage. This week I ran the full 2026 engine across all 50 states + DC — 11 income levels, 2 filing statuses, 1,122 computed observations — and published the whole thing as an open dataset (CC BY 4.0).&lt;/p&gt;

&lt;p&gt;Here's what a single filer earning &lt;strong&gt;$100,000&lt;/strong&gt; actually keeps in 2026, after federal tax, state tax and FICA.&lt;/p&gt;

&lt;h2&gt;
  
  
  The headline numbers
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Rank&lt;/th&gt;
&lt;th&gt;State&lt;/th&gt;
&lt;th&gt;Take-home (annual)&lt;/th&gt;
&lt;th&gt;Effective total tax&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1 (9-way tie)&lt;/td&gt;
&lt;td&gt;Alaska, Florida, Nevada, New Hampshire, South Dakota, Tennessee, Texas, Washington, Wyoming&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;$79,180&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;20.8%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;North Dakota&lt;/td&gt;
&lt;td&gt;$78,489&lt;/td&gt;
&lt;td&gt;21.5%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;47&lt;/td&gt;
&lt;td&gt;District of Columbia&lt;/td&gt;
&lt;td&gt;$73,649&lt;/td&gt;
&lt;td&gt;26.4%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;48&lt;/td&gt;
&lt;td&gt;Maine&lt;/td&gt;
&lt;td&gt;$73,147&lt;/td&gt;
&lt;td&gt;26.9%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;49&lt;/td&gt;
&lt;td&gt;Hawaii&lt;/td&gt;
&lt;td&gt;$73,023&lt;/td&gt;
&lt;td&gt;27.0%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;50&lt;/td&gt;
&lt;td&gt;California&lt;/td&gt;
&lt;td&gt;$72,657&lt;/td&gt;
&lt;td&gt;27.3%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;51&lt;/td&gt;
&lt;td&gt;Oregon&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;$70,904&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;29.1%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The spread between the nine no-income-tax states and Oregon is &lt;strong&gt;$8,276 every year&lt;/strong&gt; — about $690 a month, on the exact same salary.&lt;/p&gt;

&lt;h2&gt;
  
  
  Three things that surprised me
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1. Oregon is a bigger outlier than California.&lt;/strong&gt; Everyone talks about California taxes, but at $100k the marginal California rate is still climbing, while Oregon's 8.75% bracket starts at just $10,200 of taxable income. Oregon also has no sales tax — which this dataset doesn't measure — but on pure paycheck math, Oregon takes the most.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. California's real differentiator isn't the brackets — it's SDI.&lt;/strong&gt; Since 2024 (SB 951), California's 1.3% State Disability Insurance applies to &lt;strong&gt;every dollar&lt;/strong&gt; of wages, uncapped. At $100k that's $1,300 on top of income tax; at $500k it's $6,500. Most calculators I audited still apply the old cap.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. The "no-tax" tie hides local differences.&lt;/strong&gt; Nine states tie at $79,180 because they levy no state income tax on wages. What separates them in real life is property tax (New Hampshire ~1.8% effective vs Nevada ~0.5%) and sales tax — which is why we publish those as separate datasets.&lt;/p&gt;

&lt;h2&gt;
  
  
  Methodology, in one paragraph
&lt;/h2&gt;

&lt;p&gt;One deterministic engine, jurisdiction data as inputs: 2026 federal brackets and standard deduction (Rev. Proc. 2025-32, Pub 15-T method), Social Security to the 2026 SSA wage base, Medicare + the 0.9% Additional Medicare Tax, state brackets/deductions verified DOR by DOR (including 2026 legislative changes like Georgia H.B. 111 and South Carolina H.4216), plus state payroll extras like California SDI. Every figure carries an explicit 2026 vintage. Full write-up: &lt;a href="https://statetakehome.com/methodology" rel="noopener noreferrer"&gt;statetakehome.com/methodology&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Get the data
&lt;/h2&gt;

&lt;p&gt;The full dataset (1,122 rows: 51 jurisdictions × 11 incomes × 2 filing statuses) and the 51-state ranking are free to download and reuse, including commercially, with attribution:&lt;/p&gt;

&lt;p&gt;→ &lt;strong&gt;&lt;a href="https://statetakehome.com/data" rel="noopener noreferrer"&gt;statetakehome.com/data&lt;/a&gt;&lt;/strong&gt; (CC BY 4.0)&lt;/p&gt;

&lt;p&gt;And if you just want your own number: every state has an interactive calculator, e.g. &lt;a href="https://statetakehome.com/texas-take-home-pay-calculator" rel="noopener noreferrer"&gt;Texas&lt;/a&gt; or &lt;a href="https://statetakehome.com/california-take-home-pay-calculator" rel="noopener noreferrer"&gt;California&lt;/a&gt; — the inputs never leave your browser.&lt;/p&gt;

&lt;p&gt;If you spot a rate that doesn't match its official source, tell me — verified corrections ship within 48 hours. That's the whole point of the project.&lt;/p&gt;

</description>
      <category>data</category>
      <category>taxes</category>
      <category>opendata</category>
      <category>personalfinance</category>
    </item>
    <item>
      <title>I scraped 103 public prices to build an open dataset of website creation costs in France (CC-BY, DOI)</title>
      <dc:creator>Mehdi Kabbaj</dc:creator>
      <pubDate>Mon, 06 Jul 2026 11:10:11 +0000</pubDate>
      <link>https://dev.to/tresor4k/i-scraped-103-public-prices-to-build-an-open-dataset-of-website-creation-costs-in-france-cc-by-1d13</link>
      <guid>https://dev.to/tresor4k/i-scraped-103-public-prices-to-build-an-open-dataset-of-website-creation-costs-in-france-cc-by-1d13</guid>
      <description>&lt;h1&gt;
  
  
  How Much Does a Website Cost?
&lt;/h1&gt;

&lt;h2&gt;
  
  
  I Published 103 Verified Price Points as an Open Dataset
&lt;/h2&gt;

&lt;p&gt;“How much does a website cost?” is one of the most-searched business questions in every language.&lt;/p&gt;

&lt;p&gt;And yet, almost every answer online has the same problem: broad marketing ranges, no sample, no dates, no sources, and no way to verify the numbers.&lt;/p&gt;

&lt;p&gt;So I did what any data-minded person would do.&lt;/p&gt;

&lt;p&gt;I collected &lt;strong&gt;103 public, verifiable website pricing data points&lt;/strong&gt; and published the whole thing as an open dataset — CSV, CC-BY 4.0, with a DOI.&lt;/p&gt;

&lt;p&gt;This post explains:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;how the dataset was built;&lt;/li&gt;
&lt;li&gt;what the pricing data shows;&lt;/li&gt;
&lt;li&gt;what I learned from publishing a small open dataset properly in 2026.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The Problem With Website Pricing Content
&lt;/h2&gt;

&lt;p&gt;Search for “website cost” in almost any market and you’ll find dozens of near-identical articles.&lt;/p&gt;

&lt;p&gt;The pattern is always the same:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;huge price ranges;&lt;/li&gt;
&lt;li&gt;no methodology;&lt;/li&gt;
&lt;li&gt;no sample size;&lt;/li&gt;
&lt;li&gt;no collection date;&lt;/li&gt;
&lt;li&gt;no downloadable data;&lt;/li&gt;
&lt;li&gt;no way to check the sources.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For the French market — my playground, since I run a small web agency in Metz — the typical answer is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“A website costs between €500 and €10,000.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That is technically true.&lt;/p&gt;

&lt;p&gt;It is also almost useless.&lt;/p&gt;

&lt;p&gt;The missing piece was simple: &lt;strong&gt;nobody was publishing the actual data behind the claims.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That was the gap I wanted to fill.&lt;/p&gt;

&lt;h2&gt;
  
  
  Methodology: 103 Public and Verifiable Price Points
&lt;/h2&gt;

&lt;p&gt;I only collected prices that anyone can verify publicly.&lt;/p&gt;

&lt;p&gt;No private quotes.&lt;br&gt;
No client invoices.&lt;br&gt;
No proprietary agency data.&lt;br&gt;
No “trust me bro” numbers.&lt;/p&gt;

&lt;p&gt;The dataset includes pricing data from:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Official pricing pages&lt;/strong&gt; of website builders such as Wix, Squarespace, Shopify, SiteW, e-monsite, Hostinger and Webflow;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;French freelance day-rate barometers&lt;/strong&gt; from Malt and Codeur.com;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;France Num’s pricing grid&lt;/strong&gt;, an official reference from the French Ministry for the Economy’s SME digitalization program;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Market guides published in 2025–2026&lt;/strong&gt; with explicit pricing ranges.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each row in the CSV includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;service category;&lt;/li&gt;
&lt;li&gt;provider type;&lt;/li&gt;
&lt;li&gt;pricing model;&lt;/li&gt;
&lt;li&gt;minimum price;&lt;/li&gt;
&lt;li&gt;maximum price;&lt;/li&gt;
&lt;li&gt;typical price;&lt;/li&gt;
&lt;li&gt;currency;&lt;/li&gt;
&lt;li&gt;region;&lt;/li&gt;
&lt;li&gt;source URL;&lt;/li&gt;
&lt;li&gt;collection date.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Collection date:&lt;/strong&gt; June 11, 2026&lt;br&gt;
&lt;strong&gt;Total rows:&lt;/strong&gt; 103&lt;br&gt;
&lt;strong&gt;License:&lt;/strong&gt; CC-BY 4.0&lt;/p&gt;

&lt;h2&gt;
  
  
  What the Data Shows
&lt;/h2&gt;

&lt;p&gt;Here are the aggregate results, using the median of typical prices per segment.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Project type&lt;/th&gt;
&lt;th&gt;DIY builder&lt;/th&gt;
&lt;th&gt;Freelancer&lt;/th&gt;
&lt;th&gt;Agency&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Brochure site / vitrine&lt;/td&gt;
&lt;td&gt;~€16/month&lt;/td&gt;
&lt;td&gt;€1,450&lt;/td&gt;
&lt;td&gt;€3,500&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Brochure site range&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;€500–€8,000&lt;/td&gt;
&lt;td&gt;€500–€15,000&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;E-commerce&lt;/td&gt;
&lt;td&gt;~€41/month&lt;/td&gt;
&lt;td&gt;€3,000&lt;/td&gt;
&lt;td&gt;€11,000&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;E-commerce range&lt;/td&gt;
&lt;td&gt;€5–€2,100/month&lt;/td&gt;
&lt;td&gt;€1,500–€5,000&lt;/td&gt;
&lt;td&gt;€3,000–€30,000&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Custom web app&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;€10,000&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Custom web app range&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;€4,000–€50,000&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Two Findings That Stood Out
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. The Regional Price Gap Exists — But It Is Smaller Than People Think
&lt;/h3&gt;

&lt;p&gt;One common belief in France is that Paris is dramatically more expensive than the rest of the country.&lt;/p&gt;

&lt;p&gt;The data does show a gap, but not the cartoon version.&lt;/p&gt;

&lt;p&gt;For example, experienced back-end developers charge:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;€592/day in Paris&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;€513/day in Marseille&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That is roughly a &lt;strong&gt;13% difference&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;So yes, Paris is more expensive.&lt;/p&gt;

&lt;p&gt;But the data does not support the idea that “Paris costs double” as a general rule.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Total Cost of Ownership Changes the DIY vs Agency Debate
&lt;/h3&gt;

&lt;p&gt;Sticker prices are misleading.&lt;/p&gt;

&lt;p&gt;A DIY website builder looks cheap because the monthly fee is low.&lt;/p&gt;

&lt;p&gt;Over 36 months, the estimated cost is approximately:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Option&lt;/th&gt;
&lt;th&gt;36-month cost&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;DIY builder&lt;/td&gt;
&lt;td&gt;~€576&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Freelancer build&lt;/td&gt;
&lt;td&gt;~€4,000&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Agency build&lt;/td&gt;
&lt;td&gt;~€6,100&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;On cash out, DIY wins.&lt;/p&gt;

&lt;p&gt;But that ignores the hidden cost: &lt;strong&gt;your own time&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;A DIY website can easily take 15 to 30 days of work once you include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;setup;&lt;/li&gt;
&lt;li&gt;design decisions;&lt;/li&gt;
&lt;li&gt;content writing;&lt;/li&gt;
&lt;li&gt;SEO basics;&lt;/li&gt;
&lt;li&gt;mobile adjustments;&lt;/li&gt;
&lt;li&gt;integrations;&lt;/li&gt;
&lt;li&gt;revisions;&lt;/li&gt;
&lt;li&gt;learning curve;&lt;/li&gt;
&lt;li&gt;maintenance.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Once you value that time, the ranking often changes.&lt;/p&gt;

&lt;p&gt;That total-cost-of-ownership calculation was the part readers found most useful.&lt;/p&gt;

&lt;h2&gt;
  
  
  Publishing the Dataset Properly
&lt;/h2&gt;

&lt;p&gt;Releasing a CSV on your own website is easy.&lt;/p&gt;

&lt;p&gt;Making it citable, reusable and discoverable takes more thought.&lt;/p&gt;

&lt;p&gt;Here is the publishing stack I used.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Open License: CC-BY 4.0
&lt;/h3&gt;

&lt;p&gt;I chose &lt;strong&gt;CC-BY 4.0&lt;/strong&gt; because it allows reuse while requiring attribution.&lt;/p&gt;

&lt;p&gt;That is the right trade-off when you want other people to cite, reuse or build on your dataset.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. DOI via Zenodo
&lt;/h3&gt;

&lt;p&gt;I uploaded the dataset to Zenodo and generated a DOI:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://doi.org/10.5281/zenodo.20690911" rel="noopener noreferrer"&gt;10.5281/zenodo.20690911&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This turns the CSV into a permanent, citable object.&lt;/p&gt;

&lt;p&gt;If you publish a dataset without a DOI, you are leaving citations on the table.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Mirrors Where Data People Actually Look
&lt;/h3&gt;

&lt;p&gt;I also mirrored the dataset on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.data.gouv.fr/fr/datasets/barometre-des-prix-de-creation-de-site-web-en-france-2026/" rel="noopener noreferrer"&gt;data.gouv.fr&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://huggingface.co/datasets/tresor2k/barometre-prix-creation-site-web-france-2026" rel="noopener noreferrer"&gt;Hugging Face Datasets&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The goal was not just to publish the data.&lt;/p&gt;

&lt;p&gt;The goal was to put it where researchers, builders, journalists and AI systems are more likely to discover it.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Schema.org Dataset Markup
&lt;/h3&gt;

&lt;p&gt;On the landing page, I added server-side rendered &lt;code&gt;Dataset&lt;/code&gt; JSON-LD with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;identifier&lt;/code&gt; for the DOI;&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;license&lt;/code&gt;;&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;distribution&lt;/code&gt; with the direct CSV link;&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;sameAs&lt;/code&gt; links to every mirror.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That made the dataset eligible for Google Dataset rich results.&lt;/p&gt;

&lt;p&gt;And it worked: the page received the Dataset rich result within days.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Interactive Calculator Built on Top of the Dataset
&lt;/h3&gt;

&lt;p&gt;A static pricing table is useful.&lt;/p&gt;

&lt;p&gt;But an interactive calculator is stronger.&lt;/p&gt;

&lt;p&gt;If a page only gives numbers, an AI summary can replace it.&lt;/p&gt;

&lt;p&gt;If the page calculates a personalized estimate, users still have a reason to visit.&lt;/p&gt;

&lt;p&gt;That is why the dataset is paired with a calculator rather than just a downloadable CSV.&lt;/p&gt;

&lt;h2&gt;
  
  
  Takeaways for Anyone Publishing a Small Dataset
&lt;/h2&gt;

&lt;p&gt;You do not need a massive dataset to create something useful.&lt;/p&gt;

&lt;p&gt;You need clean, verifiable, well-documented data.&lt;/p&gt;

&lt;p&gt;The recipe is simple:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Public pricing pages + freelance barometers + one institutional reference can create a legitimate market dataset.&lt;/li&gt;
&lt;li&gt;Small is fine. &lt;strong&gt;103 sourced rows beat 10,000 unverifiable rows.&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;A DOI, open license and mirrors can turn a blog CSV into a citable reference.&lt;/li&gt;
&lt;li&gt;Every price needs a collection date. Without a date, pricing data becomes noise.&lt;/li&gt;
&lt;li&gt;An interactive tool gives the page more long-term value than a static article.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Full Dataset and Calculator
&lt;/h2&gt;

&lt;p&gt;The full barometer includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;charts;&lt;/li&gt;
&lt;li&gt;methodology;&lt;/li&gt;
&lt;li&gt;interactive calculator;&lt;/li&gt;
&lt;li&gt;downloadable CSV;&lt;/li&gt;
&lt;li&gt;source documentation.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You can find it here:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://lescreavores.fr/prix-creation-site-internet/" rel="noopener noreferrer"&gt;Baromètre des prix de création de site web — France 2026&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The article is in French, and the dataset column names are documented in English on Zenodo.&lt;/p&gt;

&lt;p&gt;Questions about the methodology, dataset structure or doing something similar in another market?&lt;/p&gt;

&lt;p&gt;Happy to compare notes in the comments.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>SMIC 2001-2026 : ce que révèlent 25 ans de revalorisations (+84,6 %)</title>
      <dc:creator>Mehdi Kabbaj</dc:creator>
      <pubDate>Fri, 03 Jul 2026 09:52:33 +0000</pubDate>
      <link>https://dev.to/tresor4k/smic-2001-2026-ce-que-revelent-25-ans-de-revalorisations-846--18i8</link>
      <guid>https://dev.to/tresor4k/smic-2001-2026-ce-que-revelent-25-ans-de-revalorisations-846--18i8</guid>
      <description>&lt;p&gt;Le SMIC français vient de passer à &lt;strong&gt;12,31 € brut de l'heure au 1er juin 2026&lt;/strong&gt; (1 867,02 €/mois). En remontant la série officielle INSEE jusqu'à juillet 2001 — premier montant fixé en euros, 6,67 €/h — on obtient 34 revalorisations et une hausse cumulée de &lt;strong&gt;+84,6 % en 25 ans&lt;/strong&gt;. Voici ce que racontent ces données (dataset complet en CSV publié en CC BY, lien en fin d'article).&lt;/p&gt;

&lt;h2&gt;
  
  
  Le mécanisme qui rythme la série : l'indexation automatique
&lt;/h2&gt;

&lt;p&gt;Contrairement à une idée reçue, le SMIC n'augmente pas seulement chaque 1er janvier. La loi prévoit une revalorisation &lt;strong&gt;automatique en cours d'année&lt;/strong&gt; dès que l'inflation dépasse 2 % depuis la dernière revalorisation. C'est ce mécanisme qui explique les années à revalorisations multiples visibles dans la série : 2008 (mai + juillet), 2011, 2012, 2021, &lt;strong&gt;2022 et ses trois hausses&lt;/strong&gt; (janvier, mai, août — pic d'inflation), 2023, 2024… et 2026, avec la hausse du 1er juin (+2,41 %) déclenchée le 13 mai.&lt;/p&gt;

&lt;h2&gt;
  
  
  Trois périodes bien distinctes
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;2001-2012 : rattrapages réguliers.&lt;/strong&gt; De 6,67 € à 9,40 €, portés notamment par l'harmonisation des « SMIC multiples » hérités des 35 heures (2003-2005).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;2013-2020 : la décennie calme.&lt;/strong&gt; Une seule petite hausse par an, de 9,43 € à 10,15 € — l'inflation est faible, aucun « coup de pouce » gouvernemental.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;2021-2026 : l'inflation reprend la main.&lt;/strong&gt; Huit revalorisations en cinq ans et demi, de 10,25 € à 12,31 €. Fait notable : &lt;strong&gt;aucune revalorisation en 2025&lt;/strong&gt; (le montant de novembre 2024 a tenu 19 mois), puis le mécanisme automatique s'est re-déclenché en 2026.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Brut affiché, net perçu
&lt;/h2&gt;

&lt;p&gt;Le chiffre « officiel » est toujours le brut, mais ce qui compte pour le salarié est le net : au 1er juin 2026, le SMIC net mensuel s'établit à &lt;strong&gt;1 477,93 €&lt;/strong&gt; (contre 1 443,11 € depuis janvier), d'après le communiqué du ministère du Travail. L'écart brut/net (~21 %) correspond aux cotisations salariales — pour le calculer sur votre propre salaire, un &lt;a href="https://macalculatriceenligne.com/finance/salaire/calcul-smic-net/" rel="noopener noreferrer"&gt;calculateur de SMIC net&lt;/a&gt; ou un &lt;a href="https://macalculatriceenligne.com/finance/salaire/calcul-salaire-brut-net/" rel="noopener noreferrer"&gt;convertisseur brut-net&lt;/a&gt; à jour des taux 2026 fait le travail en quelques secondes.&lt;/p&gt;

&lt;h2&gt;
  
  
  Le dataset
&lt;/h2&gt;

&lt;p&gt;Les 34 revalorisations (date d'entrée en vigueur, horaire brut, mensuel brut 151,67 h, date JO, source) sont publiées en &lt;strong&gt;CSV sous licence CC BY 4.0&lt;/strong&gt;, extraites programmatiquement du fichier INSEE officiel (réf. 1375188) et complétées par l'arrêté du 22 mai 2026 (Légifrance). Compilation : équipe Données &amp;amp; Recherche de &lt;a href="https://macalculatriceenligne.com/" rel="noopener noreferrer"&gt;Ma Calculatrice en Ligne&lt;/a&gt;, qui maintient plusieurs centaines de calculatrices gratuites (salaire, impôts, immobilier…) pour la France et la francophonie.&lt;/p&gt;

</description>
      <category>france</category>
      <category>data</category>
      <category>opendata</category>
      <category>finance</category>
    </item>
    <item>
      <title>Brut en net 2026 : pourquoi le meme salaire ne donne pas le meme net en France, Belgique, Suisse et au Quebec</title>
      <dc:creator>Mehdi Kabbaj</dc:creator>
      <pubDate>Sat, 27 Jun 2026 10:41:18 +0000</pubDate>
      <link>https://dev.to/tresor4k/brut-en-net-2026-pourquoi-le-meme-salaire-ne-donne-pas-le-meme-net-en-france-belgique-suisse-et-4dh6</link>
      <guid>https://dev.to/tresor4k/brut-en-net-2026-pourquoi-le-meme-salaire-ne-donne-pas-le-meme-net-en-france-belgique-suisse-et-4dh6</guid>
      <description>&lt;p&gt;Un salarie francais, un belge, un suisse romand et un quebecois touchent tous « 3 000 » de salaire brut. Pourtant, ce qui atterrit reellement sur leur compte en fin de mois n'a rien de comparable. La raison ? Quatre logiques de prelevement radicalement differentes. Tour d'horizon — et les outils pour calculer &lt;strong&gt;votre&lt;/strong&gt; net exact dans chaque pays.&lt;/p&gt;

&lt;h2&gt;
  
  
  France : cotisations salariales + prelevement a la source
&lt;/h2&gt;

&lt;p&gt;En France, le passage du brut au net se fait en deux temps. D'abord les &lt;strong&gt;cotisations sociales salariales&lt;/strong&gt; (assurance maladie, retraite, chomage, CSG/CRDS) qui amputent le brut d'environ un cinquieme a un quart selon le statut (cadre ou non-cadre). Ensuite, depuis 2019, le &lt;strong&gt;prelevement a la source&lt;/strong&gt; de l'impot sur le revenu vient directement diminuer le « net a payer ». Resultat : il existe desormais deux « net » distincts — le &lt;strong&gt;net social&lt;/strong&gt; et le &lt;strong&gt;net apres impot&lt;/strong&gt;, ce qui seme souvent la confusion.&lt;/p&gt;

&lt;p&gt;Point de repere 2026 : le SMIC brut mensuel est de &lt;strong&gt;1 867,02 €&lt;/strong&gt; (35 h). Pour convertir n'importe quel brut en net selon votre statut, le plus simple est d'utiliser une &lt;a href="https://macalculatriceenligne.com/finance/salaire/calcul-salaire-brut-net/" rel="noopener noreferrer"&gt;calculatrice de salaire brut en net&lt;/a&gt; qui applique les taux a jour.&lt;/p&gt;

&lt;h2&gt;
  
  
  Belgique : le precompte professionnel, plus mordant
&lt;/h2&gt;

&lt;p&gt;La Belgique applique des &lt;strong&gt;cotisations de securite sociale&lt;/strong&gt; (environ 13,07 % pour un employe) puis un &lt;strong&gt;precompte professionnel&lt;/strong&gt; — une retenue d'impot a la source nettement plus progressive et plus lourde qu'en France sur les tranches moyennes. A brut egal, un salarie belge conserve donc generalement &lt;strong&gt;un net plus faible&lt;/strong&gt; qu'un francais, mais beneficie en contrepartie d'une protection sociale etendue. Les baremes dependent aussi de la situation familiale (personnes a charge). Pour un calcul localise Belgique, macalc propose des &lt;a href="https://macalculatriceenligne.com/belgique/calcul-salaire-minimum-belgique/" rel="noopener noreferrer"&gt;outils adaptes a la Belgique&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Suisse : peu de charges, mais l'impot arrive apres
&lt;/h2&gt;

&lt;p&gt;Inversion totale en Suisse : les &lt;strong&gt;cotisations sociales sont faibles&lt;/strong&gt; (AVS/AI/APG, AC, LPP/2e pilier, soit grosso modo 12-15 % selon l'age et la caisse). Le « net » suisse parait donc tres eleve… sauf que &lt;strong&gt;l'impot n'est pas preleve a la source&lt;/strong&gt; pour la plupart des residents : il est facture separement l'annee suivante, et il varie enormement d'un &lt;strong&gt;canton&lt;/strong&gt; a l'autre. Le pouvoir d'achat reel depend donc autant du canton que du salaire. macalc couvre ces specificites via sa &lt;a href="https://macalculatriceenligne.com/suisse/calcul-salaire-net-suisse/" rel="noopener noreferrer"&gt;calculatrice de salaire net en Suisse&lt;/a&gt; (et le &lt;a href="https://macalculatriceenligne.com/suisse/calcul-3eme-pilier-suisse/" rel="noopener noreferrer"&gt;3e pilier&lt;/a&gt;).&lt;/p&gt;

&lt;h2&gt;
  
  
  Quebec : double palier federal + provincial
&lt;/h2&gt;

&lt;p&gt;Au Quebec, la paie subit un &lt;strong&gt;double etage d'impot&lt;/strong&gt; — federal (Canada) &lt;strong&gt;et&lt;/strong&gt; provincial (Quebec) — auxquels s'ajoutent les cotisations au RRQ (regime de rentes), a l'assurance-emploi et au RQAP. Le Quebec se distingue par un taux d'imposition provincial parmi les plus eleves d'Amerique du Nord, compense par des services publics etendus. Le « net » depend fortement des credits d'impot applicables. Cote outils, macalc dispose de &lt;a href="https://macalculatriceenligne.com/quebec/calcul-credit-solidarite/" rel="noopener noreferrer"&gt;calculatrices pour le Quebec&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Le vrai enseignement
&lt;/h2&gt;

&lt;p&gt;Comparer des « nets » entre pays sans calculatrice est un piege : la France et la Belgique prelevent l'impot &lt;strong&gt;dans&lt;/strong&gt; la fiche de paie, la Suisse le reclame &lt;strong&gt;apres&lt;/strong&gt;, et le Quebec &lt;strong&gt;empile&lt;/strong&gt; deux paliers. Un meme brut peut donner des ecarts de net de plusieurs centaines d'euros/francs/dollars une fois tout pris en compte — sans meme parler du cout de la vie.&lt;/p&gt;

&lt;p&gt;La seule facon fiable d'obtenir &lt;strong&gt;votre&lt;/strong&gt; chiffre : utiliser un outil qui applique les baremes officiels a jour de votre pays. C'est exactement ce que regroupe &lt;strong&gt;&lt;a href="https://macalculatriceenligne.com/" rel="noopener noreferrer"&gt;Ma Calculatrice en Ligne&lt;/a&gt;&lt;/strong&gt; — des centaines de calculatrices gratuites (salaire, impots, immobilier, conversions…), sans inscription, pour la France et toute la francophonie.&lt;/p&gt;

</description>
      <category>finance</category>
      <category>french</category>
      <category>tax</category>
      <category>money</category>
    </item>
    <item>
      <title>Two new open datasets: US dental costs by procedure and by city (CC-BY, DOI)</title>
      <dc:creator>Mehdi Kabbaj</dc:creator>
      <pubDate>Thu, 25 Jun 2026 10:44:03 +0000</pubDate>
      <link>https://dev.to/tresor4k/two-new-open-datasets-us-dental-costs-by-procedure-and-by-city-cc-by-doi-2ncb</link>
      <guid>https://dev.to/tresor4k/two-new-open-datasets-us-dental-costs-by-procedure-and-by-city-cc-by-doi-2ncb</guid>
      <description>&lt;p&gt;We just released &lt;strong&gt;two new open datasets&lt;/strong&gt; on U.S. dental costs, both &lt;strong&gt;CC BY 4.0&lt;/strong&gt; with a permanent &lt;strong&gt;DOI&lt;/strong&gt;, derived from our open US Dental Cost Index (no figures invented).&lt;/p&gt;

&lt;h2&gt;
  
  
  1. US Dental Procedure Cost by Procedure Type (2026)
&lt;/h2&gt;

&lt;p&gt;National low / average / high cash cost of 12 common dental procedures, with the cheapest and priciest U.S. state for each procedure.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;DOI: &lt;a href="https://doi.org/10.5281/zenodo.20819437" rel="noopener noreferrer"&gt;https://doi.org/10.5281/zenodo.20819437&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Interactive page: &lt;a href="https://realdentalcosts.com/en/dental-procedure-cost-list/" rel="noopener noreferrer"&gt;https://realdentalcosts.com/en/dental-procedure-cost-list/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Mirrors: Kaggle, Hugging Face, data.world, Figshare, GitHub.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  2. US Dental Cost by City / Metro (2026)
&lt;/h2&gt;

&lt;p&gt;Average implant / veneer / braces prices across &lt;strong&gt;206 U.S. cities&lt;/strong&gt;, ranked from the cheapest metro (Flint, MI) to the priciest (New York City, NY).&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;DOI: &lt;a href="https://doi.org/10.5281/zenodo.20819439" rel="noopener noreferrer"&gt;https://doi.org/10.5281/zenodo.20819439&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Page: &lt;a href="https://realdentalcosts.com/en/us-dental-cost-index/" rel="noopener noreferrer"&gt;https://realdentalcosts.com/en/us-dental-cost-index/&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Free to reuse with attribution to the &lt;strong&gt;Real Dental Costs Data &amp;amp; Research Team&lt;/strong&gt;.&lt;/p&gt;

</description>
      <category>dataset</category>
      <category>opendata</category>
      <category>data</category>
      <category>healthcare</category>
    </item>
    <item>
      <title>Combien d'heures travaille-t-on légalement dans la francophonie ? Le match France / Belgique / Suisse / Québec / Luxembourg (202</title>
      <dc:creator>Mehdi Kabbaj</dc:creator>
      <pubDate>Fri, 19 Jun 2026 14:23:41 +0000</pubDate>
      <link>https://dev.to/tresor4k/combien-dheures-travaille-t-on-legalement-dans-la-francophonie-le-match-france-belgique--44pd</link>
      <guid>https://dev.to/tresor4k/combien-dheures-travaille-t-on-legalement-dans-la-francophonie-le-match-france-belgique--44pd</guid>
      <description>&lt;p&gt;On parle souvent des « 35 heures » comme d'une évidence française. Mais dès qu'on franchit une frontière francophone, le compteur change — et surtout, la façon dont vos heures supplémentaires sont payées change radicalement. J'ai compilé les chiffres officiels 2026 de cinq territoires dans un jeu de données ouvert. Voici ce qu'ils racontent.&lt;/p&gt;

&lt;h2&gt;
  
  
  La durée légale : de 35 h à 50 h, presque du simple au double
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Territoire&lt;/th&gt;
&lt;th&gt;Durée légale hebdomadaire&lt;/th&gt;
&lt;th&gt;Base mensuelle&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;🇫🇷 France&lt;/td&gt;
&lt;td&gt;35 h&lt;/td&gt;
&lt;td&gt;151,67 h&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🇧🇪 Belgique&lt;/td&gt;
&lt;td&gt;38 h&lt;/td&gt;
&lt;td&gt;~164,67 h (dérivé)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🇨🇦 Québec&lt;/td&gt;
&lt;td&gt;40 h&lt;/td&gt;
&lt;td&gt;173,33 h (dérivé)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🇱🇺 Luxembourg&lt;/td&gt;
&lt;td&gt;40 h&lt;/td&gt;
&lt;td&gt;173 h (forfait légal)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🇨🇭 Suisse&lt;/td&gt;
&lt;td&gt;45 h (industrie/bureau/vente) à 50 h (autres)&lt;/td&gt;
&lt;td&gt;quota annuel&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;La France reste le pays à la durée légale la plus courte. À l'autre bout du spectre, la Suisse autorise jusqu'à &lt;strong&gt;45 heures&lt;/strong&gt; dans l'industrie, les bureaux et le commerce de détail, et &lt;strong&gt;50 heures&lt;/strong&gt; dans tous les autres secteurs avant que la moindre majoration ne se déclenche. Entre une semaine légale française et une semaine suisse « autres secteurs », l'écart atteint 15 heures.&lt;/p&gt;

&lt;h2&gt;
  
  
  Le vrai sujet : qui paie le mieux la 41e heure ?
&lt;/h2&gt;

&lt;p&gt;C'est là que les systèmes divergent le plus.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🇧🇪 La Belgique est la plus protectrice.&lt;/strong&gt; Toute heure au-delà de 9 h/jour ou 40 h/semaine donne droit à un sursalaire de &lt;strong&gt;+50 % en semaine&lt;/strong&gt; (samedi compris) et de &lt;strong&gt;+100 % le dimanche et les jours fériés&lt;/strong&gt;. Par défaut, ces heures se récupèrent ; le salarié peut renoncer à la récupération pour toucher la majoration en cash.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🇨🇦 Le Québec joue simple et clair.&lt;/strong&gt; Au-delà de 40 h/semaine, c'est &lt;strong&gt;taux et demi (+50 %)&lt;/strong&gt;, point. Avec une option de remplacement par un congé payé équivalent (1 h 30 par heure supplémentaire).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🇫🇷 La France module.&lt;/strong&gt; +25 % pour les 8 premières heures supplémentaires (de la 36e à la 43e), puis &lt;strong&gt;+50 %&lt;/strong&gt; à partir de la 44e. Le tout dans un contingent annuel de 220 heures par défaut.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🇱🇺 Le Luxembourg est intermédiaire.&lt;/strong&gt; Compensation par défaut en repos (1 h 30 par heure), ou paiement à &lt;strong&gt;140 % du salaire horaire&lt;/strong&gt;, soit &lt;strong&gt;+40 %&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🇨🇭 La Suisse est la plus avare — et la plus piégeuse.&lt;/strong&gt; Le « travail supplémentaire » au-delà du maximum légal n'est majoré que de &lt;strong&gt;+25 %&lt;/strong&gt;… et seulement après un quota annuel non payé (170 h dans le régime 45 h, 140 h dans le régime 50 h). Attention au faux ami : en droit suisse, ces &lt;em&gt;heures supplémentaires de la loi sur le travail&lt;/em&gt; (Überzeit) sont distinctes des &lt;em&gt;heures supplémentaires contractuelles&lt;/em&gt; (art. 321c CO), qui relèvent du contrat.&lt;/p&gt;

&lt;h2&gt;
  
  
  Trois pièges concrets quand on calcule au-delà des frontières
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1. La « base mensuelle » n'existe pas partout.&lt;/strong&gt; La France raisonne en 151,67 h/mois, le Luxembourg en 173 h (forfait officiel). Mais la Belgique raisonne par &lt;strong&gt;trimestre&lt;/strong&gt; (520 h = 13 × 40), pas par mois, et la Suisse fixe un &lt;strong&gt;plafond annuel&lt;/strong&gt; de travail supplémentaire. Convertir mécaniquement « semaine × 52 ÷ 12 » donne un ordre de grandeur, pas une valeur légale.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Le seuil de déclenchement n'est pas toujours la durée légale.&lt;/strong&gt; En Belgique, le sursalaire se déclenche au-delà de 9 h/jour &lt;em&gt;ou&lt;/em&gt; 40 h/semaine — pas à 38 h. En Suisse, rien n'est majoré tant qu'on reste sous le maximum légal (45 ou 50 h).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Repos compensateur vs paiement.&lt;/strong&gt; Dans presque tous ces pays, l'employeur peut remplacer la majoration par du repos. Le calcul de paie change donc selon l'option retenue — d'où l'intérêt d'un outil qui gère les deux.&lt;/p&gt;

&lt;h2&gt;
  
  
  La formule, identique partout
&lt;/h2&gt;

&lt;p&gt;Quel que soit le pays, une fois le seuil et le taux connus, le calcul d'une heure supplémentaire est le même :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Heure sup. payée = taux horaire × (1 + majoration / 100)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Exemple à 20 €/h : une heure supplémentaire vaut 25 € en France (1ʳᵉ tranche, +25 %), 28 € au Luxembourg (+40 %), 30 € au Québec et en Belgique (+50 %), et jusqu'à 40 € le dimanche en Belgique (+100 %).&lt;/p&gt;

&lt;h2&gt;
  
  
  Le jeu de données
&lt;/h2&gt;

&lt;p&gt;J'ai publié l'ensemble (durées légales, seuils, majorations, repos compensateur, base légale et sources officielles) en &lt;strong&gt;CSV ouvert sous licence CC BY 4.0&lt;/strong&gt;, vérifié ligne par ligne sur les sites gouvernementaux (Service-Public.gouv.fr, SPF Emploi, SECO, CNESST, Guichet.lu).&lt;/p&gt;

&lt;p&gt;Pour calculer directement un total hebdomadaire avec heures supplémentaires automatiques (mode « Semaine 35h »), j'utilise &lt;a href="https://macalculatriceenligne.com/temps-heures/calcul-heure/" rel="noopener noreferrer"&gt;ce calculateur d'heures et de temps de travail&lt;/a&gt;, qui gère la base 60, le passage minuit et la décomposition jour/nuit. Pour la partie paie, la conversion en &lt;a href="https://macalculatriceenligne.com/finance/salaire/calcul-salaire-brut-net/" rel="noopener noreferrer"&gt;salaire brut / net&lt;/a&gt; prend le relais.&lt;/p&gt;

&lt;p&gt;Sources : Service-Public.gouv.fr (DILA), SPF Emploi (Belgique), Secrétariat d'État à l'économie SECO (Suisse), CNESST (Québec) et Guichet.lu / ITM (Luxembourg).&lt;/p&gt;

</description>
      <category>data</category>
      <category>opendata</category>
      <category>france</category>
      <category>career</category>
    </item>
    <item>
      <title>Dental Costs Vary up to 2x Across Canada — and the CDCP Doesn't Cover the Gap</title>
      <dc:creator>Mehdi Kabbaj</dc:creator>
      <pubDate>Thu, 18 Jun 2026 16:06:16 +0000</pubDate>
      <link>https://dev.to/tresor4k/dental-costs-vary-up-to-2x-across-canada-and-the-cdcp-doesnt-cover-the-gap-65c</link>
      <guid>https://dev.to/tresor4k/dental-costs-vary-up-to-2x-across-canada-and-the-cdcp-doesnt-cover-the-gap-65c</guid>
      <description>&lt;p&gt;The Canadian Dental Care Plan (CDCP) now helps millions of residents, but two things surprise people: dental fees vary widely &lt;strong&gt;by province&lt;/strong&gt;, and the plan &lt;strong&gt;doesn't cover everything&lt;/strong&gt;. We compiled an open, per-province cost index for nine core procedures (in CAD) and cross-referenced each to CDCP coverage.&lt;/p&gt;

&lt;h2&gt;
  
  
  What a single implant costs across Canada
&lt;/h2&gt;

&lt;p&gt;A complete single implant (fixture + abutment + crown) ranges from about &lt;strong&gt;$3,000 in Manitoba&lt;/strong&gt; to &lt;strong&gt;$6,100 in Newfoundland and Labrador&lt;/strong&gt;. Ontario publishes the only official breakdown: fixture $1,375 + abutment $575 + crown $1,099 + lab ≈ &lt;strong&gt;$4,165&lt;/strong&gt;. And implants are an &lt;strong&gt;absolute CDCP exclusion&lt;/strong&gt; — you pay 100% out of pocket regardless of income.&lt;/p&gt;

&lt;h2&gt;
  
  
  The coverage gap most guides miss
&lt;/h2&gt;

&lt;p&gt;The CDCP reimburses on its &lt;strong&gt;own established fees&lt;/strong&gt;, which are often lower than a dentist's actual charge. So even at the under-$70,000 income tier (100% coinsurance), a balance can remain. Income tiers: under $70,000 = 100%, $70,000–$79,999 = 60%, $80,000–$89,999 = 40%, $90,000+ = not eligible.&lt;/p&gt;

&lt;p&gt;Covered (no pre-auth): exams, scaling, fillings, extractions, standard root canals, complete dentures. Partial (pre-auth): crowns, cast partial dentures. &lt;strong&gt;Not covered&lt;/strong&gt;: implants, implant crowns, bridges, veneers, whitening, night guards, bone grafts.&lt;/p&gt;

&lt;h2&gt;
  
  
  Explore the full data
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://realdentalcosts.com/ca/" rel="noopener noreferrer"&gt;Dental costs in Canada by province (2026)&lt;/a&gt; — interactive CDCP out-of-pocket calculator&lt;/li&gt;
&lt;li&gt;&lt;a href="https://realdentalcosts.com/ca/cdcp-coverage/" rel="noopener noreferrer"&gt;What the CDCP covers&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://realdentalcosts.com/ca/dental-cost-by-province/" rel="noopener noreferrer"&gt;Per-province cost index&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://realdentalcosts.com/ca/dental-implants-cost/" rel="noopener noreferrer"&gt;Dental implant cost by province&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Open dataset (CSV, CC BY 4.0) with DOI &lt;strong&gt;10.5281/zenodo.20744781&lt;/strong&gt;. Figures are taken from the 2025–2026 provincial suggested-fee guides; cells modelled where a guide is members-only are flagged as estimates. This is pricing/market research, &lt;strong&gt;not medical or dental advice&lt;/strong&gt;, and is not affiliated with the Government of Canada.&lt;/p&gt;

</description>
      <category>canada</category>
      <category>healthcare</category>
      <category>data</category>
      <category>dentistry</category>
    </item>
    <item>
      <title>Les taux de TVA en francophonie en 2026 : France, Belgique, Suisse et Québec comparés</title>
      <dc:creator>Mehdi Kabbaj</dc:creator>
      <pubDate>Sat, 13 Jun 2026 13:35:54 +0000</pubDate>
      <link>https://dev.to/tresor4k/les-taux-de-tva-en-francophonie-en-2026-france-belgique-suisse-et-quebec-compares-2ipa</link>
      <guid>https://dev.to/tresor4k/les-taux-de-tva-en-francophonie-en-2026-france-belgique-suisse-et-quebec-compares-2ipa</guid>
      <description>&lt;p&gt;Si vous vendez en ligne au-delà de vos frontières ou facturez des clients dans plusieurs pays francophones, une question revient vite : &lt;strong&gt;quel taux de TVA appliquer ?&lt;/strong&gt; Les écarts sont plus grands qu'on ne le pense. Voici un comparatif 2026 à partir des barèmes officiels, que j'ai compilés dans un jeu de données ouvert.&lt;/p&gt;

&lt;h2&gt;
  
  
  Le tableau des taux 2026
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Territoire&lt;/th&gt;
&lt;th&gt;Taux normal / standard&lt;/th&gt;
&lt;th&gt;Taux réduits / spéciaux&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;🇫🇷 France&lt;/td&gt;
&lt;td&gt;20 %&lt;/td&gt;
&lt;td&gt;10 % · 5,5 % · 2,1 %&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🇧🇪 Belgique&lt;/td&gt;
&lt;td&gt;21 %&lt;/td&gt;
&lt;td&gt;12 % · 6 % · 0 %&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🇨🇭 Suisse&lt;/td&gt;
&lt;td&gt;8,1 %&lt;/td&gt;
&lt;td&gt;3,8 % (hébergement) · 2,6 %&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🇨🇦 Québec&lt;/td&gt;
&lt;td&gt;14,975 % (TPS 5 % + TVQ 9,975 %)&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;La Suisse a le taux normal le plus bas de la francophonie (8,1 %), la Belgique le plus élevé (21 %).&lt;/p&gt;

&lt;h2&gt;
  
  
  Trois pièges concrets
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1. La Suisse n'est plus à 7,7 %.&lt;/strong&gt; Depuis le 1ᵉʳ janvier 2024, le taux normal est passé à &lt;strong&gt;8,1 %&lt;/strong&gt;, le réduit à 2,6 % et le spécial hébergement à 3,8 %. Beaucoup de modèles de factures traînent encore l'ancien taux.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Le Québec, ce sont deux taxes, pas une.&lt;/strong&gt; On additionne la &lt;strong&gt;TPS fédérale (5 %)&lt;/strong&gt; et la &lt;strong&gt;TVQ provinciale (9,975 %)&lt;/strong&gt;, toutes deux calculées sur le prix hors taxes — soit &lt;strong&gt;14,975 %&lt;/strong&gt; au total. Depuis 2013, la TVQ ne se calcule plus « en cascade » sur la TPS.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. La France a relevé le gaz et l'électricité.&lt;/strong&gt; Depuis le 1ᵉʳ août 2025, le taux réduit de 5,5 % sur les abonnements d'énergie est supprimé : c'est désormais &lt;strong&gt;20 %&lt;/strong&gt;. Aucune autre hausse générale en 2026.&lt;/p&gt;

&lt;h2&gt;
  
  
  La formule, une fois pour toutes
&lt;/h2&gt;

&lt;p&gt;Quel que soit le pays, le calcul TTC est le même :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;TTC = HT × (1 + taux / 100)
HT  = TTC / (1 + taux / 100)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Exemple pour 100 € HT : 120 € TTC en France (20 %), 121 € en Belgique (21 %), 108,10 CHF en Suisse (8,1 %). Au Québec, 100 $ HT donnent 114,975 $ une fois la TPS et la TVQ ajoutées.&lt;/p&gt;

&lt;h2&gt;
  
  
  Le jeu de données
&lt;/h2&gt;

&lt;p&gt;J'ai publié l'ensemble (taux, catégories, base légale, sources officielles) en CSV ouvert sous licence CC BY 4.0, avec un DOI citable : &lt;a href="https://doi.org/10.5281/zenodo.20679859" rel="noopener noreferrer"&gt;Barèmes de TVA en francophonie 2026 (Zenodo)&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Pour calculer directement, j'utilise &lt;a href="https://macalculatriceenligne.com/finance/impots/calcul-tva/calcul-tva/" rel="noopener noreferrer"&gt;cette calculatrice de TVA en ligne&lt;/a&gt; ; pour le cas particulier belge (21/12/6/0 %), il y a une &lt;a href="https://macalculatriceenligne.com/belgique/calcul-tva-belgique/" rel="noopener noreferrer"&gt;page dédiée au calcul de la TVA en Belgique&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Sources : DGFiP, SPF Finances, Administration fédérale des contributions (AFC), Revenu Québec et l'Agence du revenu du Canada.&lt;/p&gt;

</description>
      <category>finance</category>
      <category>data</category>
      <category>opendata</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Calculer des heures en base 60 sans se tromper : la méthode des minutes totales</title>
      <dc:creator>Mehdi Kabbaj</dc:creator>
      <pubDate>Sat, 13 Jun 2026 11:10:00 +0000</pubDate>
      <link>https://dev.to/tresor4k/calculer-des-heures-en-base-60-sans-se-tromper-la-methode-des-minutes-totales-501k</link>
      <guid>https://dev.to/tresor4k/calculer-des-heures-en-base-60-sans-se-tromper-la-methode-des-minutes-totales-501k</guid>
      <description>&lt;p&gt;Additionner des heures n'est pas comme additionner des nombres : &lt;strong&gt;1h45 + 2h30 ≠ 3h75, mais 4h15&lt;/strong&gt;. La cause, c'est la base 60.&lt;/p&gt;

&lt;p&gt;La parade fiable des développeurs et des gestionnaires de paie : &lt;strong&gt;convertir chaque durée en minutes totales&lt;/strong&gt; avant toute opération, puis reconvertir.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;toMinutes&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;h&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;m&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;h&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mi"&gt;60&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nx"&gt;m&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;          &lt;span class="c1"&gt;// 3h45 -&amp;gt; 225&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;add&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;a&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;a&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;                      &lt;span class="c1"&gt;// sur les minutes, sans retenue&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;toHHMM&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;t&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nb"&gt;Math&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;floor&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;t&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="mi"&gt;60&lt;/span&gt;&lt;span class="p"&gt;)}&lt;/span&gt;&lt;span class="s2"&gt;h&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nc"&gt;String&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;t&lt;/span&gt;&lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="mi"&gt;60&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;padStart&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;0&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;toDecimal&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;t&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;t&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="mi"&gt;60&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;toFixed&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;     &lt;span class="c1"&gt;// paie : 7h15 = 7.25, jamais 7.15&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Les 3 pièges classiques
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Excel plafonne à 24h&lt;/strong&gt; si le format de cellule n'est pas &lt;code&gt;[h]:mm&lt;/code&gt; (les crochets sont obligatoires pour cumuler au-delà d'une journée).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Le passage de minuit&lt;/strong&gt; : si l'heure de fin est antérieure au début, la durée vaut &lt;code&gt;(1440 - début) + fin&lt;/code&gt; (en minutes).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;La conversion décimale&lt;/strong&gt; : on divise les &lt;strong&gt;minutes&lt;/strong&gt; par 60, pas le chiffre après l'heure. 7h45 → 45/60 = 0,75 → &lt;strong&gt;7,75&lt;/strong&gt;, pas 7,45.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Heures supplémentaires (France)
&lt;/h3&gt;

&lt;p&gt;Base légale 35h/semaine, puis +25 % de la 36ᵉ à la 43ᵉ heure et +50 % au-delà. Là encore, on raisonne en minutes totales avant d'appliquer les taux.&lt;/p&gt;

&lt;p&gt;J'ai détaillé la méthode complète en 5 étapes et un calculateur 6 modes (addition, soustraction, conversion décimal, durée entre deux horaires avec passage minuit, total semaine 35h, heures de nuit selon convention collective) ici :&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://macalculatriceenligne.com/temps-heures/calcul-heure/" rel="noopener noreferrer"&gt;Calculatrice d'heures — méthode complète&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Et vous, quelle méthode utilisez-vous pour les feuilles de temps en masse ?&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>excel</category>
      <category>beginners</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Dental Prices and Dental Coverage Are Uncorrelated Across US States (r = -0.04) — New Open Dataset</title>
      <dc:creator>Mehdi Kabbaj</dc:creator>
      <pubDate>Fri, 12 Jun 2026 12:33:29 +0000</pubDate>
      <link>https://dev.to/tresor4k/dental-prices-and-dental-coverage-are-uncorrelated-across-us-states-r-004-new-open-dataset-blp</link>
      <guid>https://dev.to/tresor4k/dental-prices-and-dental-coverage-are-uncorrelated-across-us-states-r-004-new-open-dataset-blp</guid>
      <description>&lt;p&gt;Six weeks ago we published the &lt;a href="https://doi.org/10.5281/zenodo.20531729" rel="noopener noreferrer"&gt;US Dental Cost Index by State 2026&lt;/a&gt;, a 51-jurisdiction dataset of real dental prices. The most common question we got from readers was not about prices. It was: &lt;em&gt;"fine, dental care is cheaper in Alabama — but will anyone there actually take my insurance?"&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;That is a different dataset. So we built it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;US Dental Insurance Acceptance by State 2026&lt;/strong&gt; — DOI: &lt;a href="https://doi.org/10.5281/zenodo.20666358" rel="noopener noreferrer"&gt;10.5281/zenodo.20666358&lt;/a&gt; (CC BY 4.0, also on &lt;a href="https://figshare.com/articles/dataset/US_Dental_Insurance_Acceptance_by_State_2026_/32660274" rel="noopener noreferrer"&gt;figshare&lt;/a&gt;)&lt;/p&gt;

&lt;h2&gt;
  
  
  What's in it
&lt;/h2&gt;

&lt;p&gt;One row per state (50 + DC), combining five public sources that, as far as we know, had never been joined in one table:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;% of dentists enrolled as Medicaid/CHIP providers&lt;/strong&gt; — ADA Health Policy Institute, 2024 data. National average: 41.2%. Range: 21.9% (Nevada) to 76.2% (Delaware).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Adult Medicaid dental benefit level&lt;/strong&gt; — the standard CareQuest/MACPAC classification (&lt;code&gt;none&lt;/code&gt; / &lt;code&gt;emergency_only&lt;/code&gt; / &lt;code&gt;limited&lt;/code&gt; / &lt;code&gt;extensive&lt;/code&gt;), updated for the seven 2025 state expansions (GA, IN, KS, KY, OK, MO, UT). Current distribution: 1 none, 5 emergency-only, 7 limited, 38 extensive.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Annual dollar caps&lt;/strong&gt; on the adult benefit where they exist (8 states, from $500 in Arkansas to $2,000 in West Virginia).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;% of adults with dental insurance&lt;/strong&gt; (CareQuest State of Oral Health Equity 2024) and &lt;strong&gt;% with a past-year dental visit&lt;/strong&gt; (CDC BRFSS 2024).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ACA marketplace stand-alone dental plan availability&lt;/strong&gt;, plan year 2026 (parsed from the CMS QHP landscape file for all healthcare.gov states).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These roll up into a transparent composite &lt;strong&gt;Insurance Acceptance Index&lt;/strong&gt; (100 = national average), computed exactly like our Cost Index: ratios against the national mean, averaged, no hidden weights. Every input is in the CSV, so you can re-weight it however you want.&lt;/p&gt;

&lt;h2&gt;
  
  
  The finding that surprised us
&lt;/h2&gt;

&lt;p&gt;We expected coverage to track prices at least loosely — richer states, higher prices, better benefits. The actual correlation between the Dental Cost Index and the Insurance Acceptance Index is &lt;strong&gt;r = -0.04&lt;/strong&gt;. Essentially zero.&lt;/p&gt;

&lt;p&gt;The quadrants are where it gets interesting:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Alabama&lt;/strong&gt; is the cheapest state for dental care in the country (Cost Index 76) &lt;em&gt;and&lt;/em&gt; one of the five weakest coverage profiles (Acceptance Index 77) — it is the only state left with no general adult Medicaid dental benefit at all. Cheap care does not help you if nothing is covered and only a third of dentists take Medicaid.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Nevada, Florida and Arizona&lt;/strong&gt; sit at the bottom (Acceptance Index 63): emergency-only adult benefits and the country's lowest dentist participation rates.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Iowa&lt;/strong&gt; is the outlier in the good direction: prices 19% below the national average &lt;em&gt;and&lt;/em&gt; the highest Acceptance Index (131) — 75.7% of its dentists are enrolled Medicaid providers.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you are modeling out-of-pocket dental risk for US households, price and coverage need to be separate variables. Using one as a proxy for the other is, per this data, just noise.&lt;/p&gt;

&lt;h2&gt;
  
  
  Get the data
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Dataset + methodology + chart: &lt;a href="https://zenodo.org/records/20666358" rel="noopener noreferrer"&gt;zenodo.org/records/20666358&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Companion price dataset: &lt;a href="https://realdentalcosts.com/en/us-dental-cost-index/" rel="noopener noreferrer"&gt;US Dental Cost Index by State 2026&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Consumer-facing guides built on this data: &lt;a href="https://realdentalcosts.com/en/dental-insurance/" rel="noopener noreferrer"&gt;dental insurance guides&lt;/a&gt;, &lt;a href="https://realdentalcosts.com/en/does-medicaid-cover-dental/" rel="noopener noreferrer"&gt;what Medicaid covers in each state&lt;/a&gt;, and a free &lt;a href="https://realdentalcosts.com/en/compare/" rel="noopener noreferrer"&gt;state-vs-state cost comparison tool&lt;/a&gt; with cash / PPO / savings-plan modes.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Known limitations are documented in the README (the ADA participation metric best represents child Medicaid/CHIP programs; the insured-adults share is a survey estimate; no state-level "skipped care because of cost" series exists anywhere — we checked).&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Pricing and coverage market research, not medical advice. Questions about the methodology welcome in the comments.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>datascience</category>
      <category>opendata</category>
      <category>healthcare</category>
      <category>data</category>
    </item>
    <item>
      <title>What 51 US jurisdictions reveal about dental prices (open dataset + DOI)</title>
      <dc:creator>Mehdi Kabbaj</dc:creator>
      <pubDate>Wed, 03 Jun 2026 19:39:20 +0000</pubDate>
      <link>https://dev.to/tresor4k/what-51-us-jurisdictions-reveal-about-dental-prices-open-dataset-doi-5891</link>
      <guid>https://dev.to/tresor4k/what-51-us-jurisdictions-reveal-about-dental-prices-open-dataset-doi-5891</guid>
      <description>&lt;p&gt;I spend my time on an unglamorous question: &lt;strong&gt;how much does dental care actually cost, and why does the same procedure cost wildly different amounts depending on where you live?&lt;/strong&gt; To answer it with data instead of anecdotes, our team built the &lt;strong&gt;US Dental Cost Index&lt;/strong&gt; — average implant, veneer and braces prices for all 50 US states + DC in 2026 — and released the whole thing as an open CSV. Here's what the numbers say, and how you can grab the data.&lt;/p&gt;

&lt;h2&gt;
  
  
  The headline: geography, not clinical complexity, drives the gap
&lt;/h2&gt;

&lt;p&gt;A single dental implant averages &lt;strong&gt;$3,759 in Alabama&lt;/strong&gt; and &lt;strong&gt;$5,733 in California&lt;/strong&gt; — a ~$2,000 swing for the &lt;em&gt;same&lt;/em&gt; procedure. The cheapest cluster (Alabama, Arkansas, Mississippi) sits ~24% below the national average; the priciest (California, New York, Hawaii) runs well above it.&lt;/p&gt;

&lt;p&gt;The interesting part is &lt;em&gt;why&lt;/em&gt;. When you plot each state's composite dental &lt;strong&gt;Cost Index&lt;/strong&gt; against its &lt;strong&gt;cost-of-living index&lt;/strong&gt;, you get a Pearson correlation of &lt;strong&gt;r = 0.835&lt;/strong&gt; — a strong, clean relationship. In plain terms: dental fees track local rent, wages and overhead far more than they track anything clinical. The tooth doesn't care what state it's in; the lease on the building does.&lt;/p&gt;

&lt;h2&gt;
  
  
  How the index is built
&lt;/h2&gt;

&lt;p&gt;For each of the 51 jurisdictions the dataset reports:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;average &lt;strong&gt;single implant&lt;/strong&gt; price (with low/high range)&lt;/li&gt;
&lt;li&gt;average &lt;strong&gt;per-tooth veneer&lt;/strong&gt; price&lt;/li&gt;
&lt;li&gt;average &lt;strong&gt;full-course braces&lt;/strong&gt; price&lt;/li&gt;
&lt;li&gt;a composite &lt;strong&gt;Cost Index&lt;/strong&gt; = mean of each procedure ÷ its national average × 100 (so 100 = the US average)&lt;/li&gt;
&lt;li&gt;the state &lt;strong&gt;cost-of-living index&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;an &lt;strong&gt;affordability&lt;/strong&gt; access-and-value score (0–100)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The Cost Index is deliberately simple and reproducible: no black box, just each procedure normalized to its national average and averaged. Methodology is documented here → &lt;strong&gt;&lt;a href="https://realdentalcosts.com/en/us-dental-cost-index/" rel="noopener noreferrer"&gt;US Dental Cost Index methodology&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Get the data (CSV, CC BY 4.0)
&lt;/h2&gt;

&lt;p&gt;The full dataset is open and free to reuse with attribution:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Landing page + interactive ranking:&lt;/strong&gt; &lt;a href="https://realdentalcosts.com/en/us-dental-cost-index/" rel="noopener noreferrer"&gt;https://realdentalcosts.com/en/us-dental-cost-index/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Citable DOI (Zenodo):&lt;/strong&gt; &lt;a href="https://doi.org/10.5281/zenodo.20531729" rel="noopener noreferrer"&gt;https://doi.org/10.5281/zenodo.20531729&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Also mirrored on Kaggle, data.world and Hugging Face if those are your preferred tools.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight csvs"&gt;&lt;code&gt;&lt;span class="k"&gt;rank&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="k"&gt;state&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="k"&gt;code&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="k"&gt;implant&lt;/span&gt;&lt;span class="err"&gt;_&lt;/span&gt;&lt;span class="k"&gt;avg&lt;/span&gt;&lt;span class="err"&gt;_&lt;/span&gt;&lt;span class="k"&gt;usd&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="k"&gt;implant&lt;/span&gt;&lt;span class="err"&gt;_&lt;/span&gt;&lt;span class="k"&gt;low&lt;/span&gt;&lt;span class="err"&gt;_&lt;/span&gt;&lt;span class="k"&gt;usd&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="k"&gt;implant&lt;/span&gt;&lt;span class="err"&gt;_&lt;/span&gt;&lt;span class="k"&gt;high&lt;/span&gt;&lt;span class="err"&gt;_&lt;/span&gt;&lt;span class="k"&gt;usd&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="k"&gt;veneer&lt;/span&gt;&lt;span class="err"&gt;_&lt;/span&gt;&lt;span class="k"&gt;avg&lt;/span&gt;&lt;span class="err"&gt;_&lt;/span&gt;&lt;span class="k"&gt;usd&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="k"&gt;braces&lt;/span&gt;&lt;span class="err"&gt;_&lt;/span&gt;&lt;span class="k"&gt;avg&lt;/span&gt;&lt;span class="err"&gt;_&lt;/span&gt;&lt;span class="k"&gt;usd&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="k"&gt;cost&lt;/span&gt;&lt;span class="err"&gt;_&lt;/span&gt;&lt;span class="k"&gt;index&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="k"&gt;cost&lt;/span&gt;&lt;span class="err"&gt;_&lt;/span&gt;&lt;span class="k"&gt;of&lt;/span&gt;&lt;span class="err"&gt;_&lt;/span&gt;&lt;span class="k"&gt;living&lt;/span&gt;&lt;span class="err"&gt;_&lt;/span&gt;&lt;span class="k"&gt;index&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="k"&gt;affordability&lt;/span&gt;&lt;span class="err"&gt;_&lt;/span&gt;&lt;span class="k"&gt;score&lt;/span&gt;
&lt;span class="mf"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="k"&gt;Alabama&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="k"&gt;AL&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mf"&gt;3759&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mf"&gt;2631&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mf"&gt;5263&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mf"&gt;940&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mf"&gt;3007&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mf"&gt;76&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mf"&gt;88.8&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mf"&gt;50&lt;/span&gt;
&lt;span class="mf"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="k"&gt;Arkansas&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="k"&gt;AR&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mf"&gt;3833&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mf"&gt;2683&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mf"&gt;5366&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mf"&gt;958&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mf"&gt;3066&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mf"&gt;77&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mf"&gt;86&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mf"&gt;62&lt;/span&gt;
&lt;span class="mf"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="k"&gt;Mississippi&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="k"&gt;MS&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mf"&gt;3885&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mf"&gt;2720&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mf"&gt;5439&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mf"&gt;971&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mf"&gt;3108&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mf"&gt;79&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mf"&gt;84&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mf"&gt;54&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Why this matters beyond a trivia stat
&lt;/h2&gt;

&lt;p&gt;If you're uninsured (about 1 in 4 American adults have no dental coverage), the $2,000 implant gap is actionable: dental tourism &lt;em&gt;within the US&lt;/em&gt;, dental school clinics, and savings plans all become rational moves once you can see the price surface. We keep a companion guide to &lt;a href="https://realdentalcosts.com/en/free-dental-care-by-state/" rel="noopener noreferrer"&gt;free and low-cost dental care by state&lt;/a&gt; for exactly that reason.&lt;/p&gt;

&lt;p&gt;And for anyone doing health-economics or cost-of-living analysis, the 0.835 correlation is a tidy, citable data point — the CSV is small, clean and ready to drop into a notebook.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;This is market and pricing research, not clinical or treatment advice. Data compiled by the Real Dental Costs Data &amp;amp; Research Team. Free to cite with a link to the source.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>datascience</category>
      <category>data</category>
      <category>healthcare</category>
      <category>opendata</category>
    </item>
  </channel>
</rss>
