Compliance isn't optional. Every letting agency knows the drill: Gas Safety Certificates renew annually, EICRs every 5 years (or 1 year for HMOs), HMO licenses whenever the council decides.
The hard part isn't knowing what's required—it's tracking expiry dates across 50, 100, 200 properties. Miss a Gas Safety renewal and you're letting a property illegally. Miss an EICR and your landlord insurance might be void.
This week, we improved how LetAdmin handles compliance certificates. Two features in particular make it easier to stay on top of renewals.
The Problem: Certificate Overload
For an agency managing 150 properties:
- ~150 Gas Safety Certificates (one per property)
- ~150 EICRs (every 5 years, so ~30 expire per year)
- ~15 HMO licenses (if 10% of portfolio is HMOs)
- Plus: EPC certificates, Deposit Protection certificates, Building Insurance
That's 300+ certificates to track. Some expire monthly, some annually, some every 5 years. Different landlords have different contractors. Some certificates arrive as PDFs via email, some as paper copies, some not at all until you chase them.
What Usually Happens
Most agencies use one of these approaches:
- Spreadsheet tracking: Every property has a row, every certificate type has a column, expiry dates in red when they're approaching
- Calendar reminders: Manual entries for renewals, hoping someone sees the alert
- Folder system: PDF certificates stored in Dropbox or OneDrive, filenames include expiry dates
All three approaches have the same problem: they require manual updates. Someone has to remember to update the spreadsheet, set the calendar reminder, rename the file.
The result? Certificates slip through. You discover a Gas Safety expired 3 weeks ago when a tenant asks for a copy. You scramble to book an engineer, hoping the landlord answers their phone.
The Solution: Visual Management + Automatic Alerts
LetAdmin's compliance tracking is built around two principles:
- Show, don't tell: See the certificate, not just a filename
- Alert, don't remind: System knows what's expiring, tells you automatically
Feature 1: PDF Thumbnail Previews
When you upload a certificate PDF to LetAdmin, the system generates a thumbnail preview automatically. This happens in the background—no waiting, no manual step.
What you see: A 200x200px preview of the certificate's first page in the document list.
Why it matters: Visual recognition is faster than reading filenames. You can spot a Gas Safety Certificate by sight—distinctive layout, red logo, bold "LANDLORD GAS SAFETY RECORD" header. Same for EICRs (blue/white layout) and EPCs (colour-coded bars).
When you're checking compliance for a property, you glance at the thumbnails and instantly know:
- "That's the Gas Safety—looks recent"
- "That EICR looks old—check the expiry date"
- "No EPC thumbnail—need to upload it"
Pattern matching beats reading every time.
Feature 2: Real-Time Expiry Badges
The Certificates menu in LetAdmin's sidebar now shows dynamic badges:
- Gas Safety: Number expiring within 30 days
- EICR: Number expiring within 30 days
- HMO License: Number expiring within 30 days
These badges update in real-time. When you upload a new Gas Safety Certificate, the "expiring soon" count decreases immediately. When a certificate crosses the 30-day threshold, the count increases.
No page refresh required. The badges use ActionCable (WebSockets) to update across all open browser tabs. If two team members are logged in, they both see the update instantly.
Feature 3: Warning Styling
Expiry badges use orange warning styling to grab attention without being alarming. The colour says "action required soon" rather than "crisis".
This is deliberate. Compliance deadlines are predictable—Gas Safety Certificates expire 12 months after issue, not randomly. The warning badge gives you weeks of advance notice, not hours.
What Your Team Will Notice
Faster Certificate Identification
Opening a property's compliance tab now shows:
- Visual thumbnails of all uploaded certificates
- Expiry dates clearly displayed
- Status badges (Valid, Expiring Soon, Expired)
Your team can verify compliance in seconds:
- "Gas Safety renewed last month—thumbnail shows March 2026 expiry"
- "EICR missing—no thumbnail present"
- "HMO License expiring next week—orange badge, March 2025 expiry"
No clicking through to open PDFs. No reading filenames. Visual scan, done.
Proactive Renewals
The sidebar badges create a daily reminder system:
- Morning coffee, open LetAdmin, sidebar shows "3 Gas Safety expiring"
- Click through, see which properties need renewal
- Email landlords or contractors to schedule
The 30-day window gives time to:
- Contact the landlord
- Coordinate with the engineer
- Book the Gas Safety
- Receive the certificate
- Upload to LetAdmin
No rush, no stress, no expired certificates discovered by accident.
Reduced Admin Load
PDF thumbnails eliminate a common time-waster: opening certificates to check them.
Before: "Is this the current Gas Safety or last year's? Let me download and open it... yes, March 2025, that's current."
After: Thumbnail shows the date, no download needed.
For agencies processing dozens of certificates per week, this adds up. Less clicking, less waiting for PDFs to render, less mental overhead.
Under the Bonnet: PDF Processing
The thumbnail generation uses ActiveStorage variants with ImageMagick for PDF-to-image conversion.
How It Works
When a certificate PDF is uploaded:
- File stored in S3 via ActiveStorage
- Background job queued to generate thumbnail
- ImageMagick extracts first page from PDF
- Resizes to 200x200px maintaining aspect ratio
- Thumbnail stored as variant in S3
- Database updated with variant metadata
The entire process takes 2-3 seconds and happens asynchronously. The user sees the upload complete instantly; the thumbnail appears within seconds.
Handling Edge Cases
Not all PDFs are created equal. The processor handles:
Scanned PDFs: Certificates scanned as images (common for older certificates). ImageMagick treats these as bitmap data—still generates thumbnail successfully.
Password-protected PDFs: These fail gracefully. If the PDF is password-protected, thumbnail generation is skipped and a generic PDF icon displays instead.
Multi-page PDFs: Only the first page is used for the thumbnail. For Gas Safety Certificates, this works perfectly—the key information (property address, expiry date, engineer details) is always on page 1.
Corrupted PDFs: If the file is corrupted or malformed, the job logs the error to Sentry and falls back to the generic PDF icon.
Performance Optimization
Generating thumbnails for 300+ certificates could be slow. The system optimises this with:
Lazy generation: Thumbnails are only generated when certificates are uploaded, not retroactively (unless you run the backfill rake task).
Parallel processing: Multiple background jobs run simultaneously. Upload 10 certificates at once, all 10 thumbnails generate in parallel.
Caching: Once a thumbnail is generated, it's stored in S3 and served from there. No regeneration needed unless the certificate is replaced.
Real-Time Badge Updates
The expiry badges use Rails' ActionCable for WebSocket-based real-time updates.
How It Works
When a certificate's expiry date changes:
- ActiveRecord callback fires after save
- Broadcast sent to agency's certificate channel
- All connected clients receive the update
- JavaScript updates badge counts without page refresh
This works across browser tabs. If you have LetAdmin open on desktop and tablet, both see the update simultaneously.
Efficiency
The system doesn't broadcast every certificate save—only when fields that affect the badge count change:
expiry_datechangescertificate_typechanges- Certificate created or destroyed
Uploading a document image or updating notes doesn't trigger a broadcast. This keeps WebSocket traffic minimal and prevents unnecessary client updates.
What's Next
Certificate management will continue improving:
1. Automatic Renewal Emails
Currently, badges alert you when certificates are expiring. Future updates will add automatic email alerts:
- Send landlord an email 60 days before Gas Safety expiry
- Template emails for different certificate types
- Automated follow-up if no response
2. Contractor Integration
Instead of manually emailing engineers, LetAdmin could integrate with contractor scheduling systems:
- Detect expiring Gas Safety
- Check contractor availability
- Propose appointment times to landlord
- Book directly when approved
3. Certificate Verification
Some certificates (particularly Gas Safety) have unique reference numbers. Adding automatic verification would:
- Check certificate authenticity via Gas Safe Register API
- Highlight potentially fraudulent certificates
- Log verification status for audit trail
Get In Touch
If certificate tracking is a pain point for your agency—chasing renewals, verifying documents, keeping landlords compliant—these features might help.
Questions about how certificate management works or how to migrate your existing certificates into LetAdmin?
Email: paul@letadmin.com
LetAdmin is built by letting agents for letting agents. Certificate management improvements are live and being tested with 370+ properties at Phillip James. If you'd like to see how it handles your agency's compliance tracking, we'd love to hear from you.
