<?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: Portal Fone</title>
    <description>The latest articles on DEV Community by Portal Fone (@portalfone).</description>
    <link>https://dev.to/portalfone</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%2F4200206%2Fd0e11016-2ba0-48bf-bf6f-4fc33495675f.png</url>
      <title>DEV Community: Portal Fone</title>
      <link>https://dev.to/portalfone</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/portalfone"/>
    <language>en</language>
    <item>
      <title>Turning a Government Pay Calendar PDF into Structured, Verifiable Data</title>
      <dc:creator>Portal Fone</dc:creator>
      <pubDate>Thu, 22 Oct 2026 18:01:48 +0000</pubDate>
      <link>https://dev.to/portalfone/turning-a-government-pay-calendar-pdf-into-structured-verifiable-data-6ip</link>
      <guid>https://dev.to/portalfone/turning-a-government-pay-calendar-pdf-into-structured-verifiable-data-6ip</guid>
      <description>&lt;p&gt;Every year, Mexico's DGSANEF publishes the FONE education payroll calendar as an annex (Anexo IX) — essentially a document designed for humans to read, not for machines. Hundreds of thousands of federalized teachers depend on those dates, yet the information lives in a format that is hard to search, hard to verify, and easy to misquote on social media.&lt;/p&gt;

&lt;p&gt;At PortalFone we turned that annex into a structured, quincena-by-quincena calendar page, and the process taught us a few things about working with official documents as data:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Model the domain, not the document.&lt;/strong&gt; A FONE "pay date" is not one date. Each quincena has ordinary dispersion, extraordinary dispersion, and check delivery — and dispersion (when payroll leaves for the banks) is not the same as deposit (when a teacher's bank posts it). Collapsing those into a single "payday" field is how misinformation starts.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Every date needs a source trail.&lt;/strong&gt; Each entry keeps its provenance: Anexo IX, DGSANEF. When a date is rumored on WhatsApp groups — which happens every November around the aguinaldo — the answer is never "trust us", it is "here is the annex".&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Validate identifiers before you validate dates.&lt;/strong&gt; Teachers reach the calendar through payroll systems that key on CURP and RFC. A single wrong character breaks access long before any calendar matters, which is why we also built a small client-side &lt;a href="https://portalfone.com.mx/validador-curp-rfc/" rel="noopener noreferrer"&gt;CURP/RFC structure validator&lt;/a&gt; that checks format and verifier digit entirely in the browser — no data leaves the device.&lt;/p&gt;

&lt;p&gt;The result is a single canonical page — the &lt;a href="https://portalfone.com.mx/calendario-pagos-sep-2026/" rel="noopener noreferrer"&gt;calendario de pagos FONE 2026&lt;/a&gt; — updated whenever the official source changes, instead of a new PDF screenshot circulating every fortnight.&lt;/p&gt;

&lt;p&gt;If you work with government documents in any country, the pattern generalizes: respect the domain distinctions, keep provenance per field, and publish one canonical, linkable version.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;PortalFone is an independent guide for Mexico's federalized teachers; it is not an official SEP website.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>opendata</category>
      <category>webdev</category>
      <category>spanish</category>
      <category>mexico</category>
    </item>
  </channel>
</rss>
