Changelog
Product updates, new features, and improvements across VetCostIQ releases.
v4.5.0
July 18, 2026Transparent Pricing Management
Transparent Pricing section
Renamed the hospital profile "Core Service Pricing" summary to "Transparent Pricing" and expanded it to show every verified service price (not just three core groups), deduplicated by service name so each price appears exactly once.
Smart auto-grouping
Verified prices are now automatically grouped into logical categories — Exams, Vaccinations, Spay & Neuter, Dental, Diagnostics, Emergency, Preventive, Medications, and Euthanasia — using keyword matching, with an "Other Services" fallback so nothing is left out.
Customizable pricing groups
Hospital admins and claimed owners can now rename group labels, move individual services between groups, create custom groups (e.g. "Laser Therapy"), and delete groups they no longer need — all persisted per hospital and overriding the auto-grouping.
Access-controlled pricing management
Pricing group editing is gated to admins and the claimed hospital owner only, keeping public pricing displays consistent while giving verified partners full control over how their services are presented.
v4.4.0
July 17, 2026Checkout & Demo Experience
Branded Thank You page
All checkout flows (listing subscriptions, AI access, ad budgets, and top-ups) now redirect to a branded in-app Thank You page with tailored messaging and next-step CTAs, replacing the generic post-checkout landing.
Demo dashboard tier toggle
The demo hospital dashboard now includes a tier toggle that switches between Free, Premium, and Transparency Partner views, gating the AI Assist, Marketing, and Advertising tabs with upsell cards so partners can preview exactly what each plan unlocks.
Partner plan terminology
Standardized plan copy across the pricing page and landing showcase to consistently use "Featured listing in search results" and "Partner listing in search results" with "Secure checkout" branding.
v4.3.0
July 13, 2026Data Quality & Stray Detection
Automated stray non-vet detection
Added a backend scanner that identifies non-veterinary businesses accidentally ingested as hospitals — pet stores, feed stores, cremation services, boutiques, and pet sitters — while preserving legitimate vet hospitals that offer boarding, grooming, or daycare as ancillary services.
Admin stray purge panel
New "Purge Stray Non-Vet Records" tool in the Admin Panel Duplicates tab with scan-before-delete workflow, showing each flagged record and its detection reason before removal.
Google Places API paused
Suspended all automated Google Places API population indefinitely, pausing the continuous population workflow to reduce external API spend and focus on data quality over volume.
v4.2.0
July 13, 2026SEO & Discoverability
Related content cross-linking
Educational detail pages now surface related conditions, medications, and products with the same category, helping pet owners discover relevant care information.
Smarter sitemap freshness
City-level landing pages in the sitemap now report accurate last-modified dates based on underlying hospital data, helping search engines crawl more efficiently.
Dynamic canonical tags
Canonical URLs are now set dynamically on all pages to prevent duplicate-content issues from query parameters.
Content-type OG images
Social share images now fall back to topic-specific defaults for conditions, medications, and products missing custom imagery.
v4.1.0
July 12, 2026Content & Documentation Refresh
Content library enhancements
Improved our educational content with additional reference sources and cross-linking to help pet owners make more informed decisions.
Help center updates
Expanded and corrected help documentation to better reflect current features and available resources.
General maintenance
Routine improvements and accuracy corrections across the platform.
v4.0.0
July 10, 2026Backend Hardening & Monitoring
Enrichment Pipeline Dashboard
Added a real-time enrichment monitoring panel to the Admin Panel showing completion rate, failure rate, counts by status (enriched, pending, not started, failed), and a "Retry All Failed" button that resets failed hospitals for automatic workflow retry. Auto-refreshes every 60 seconds.
Invoice image leakage fix
The parseInvoice backend function now clears the uploaded_file field immediately after OCR completes and sets image_deleted=true. The cleanupInvoiceImages function also scans and sanitizes any PriceRecord source_ref fields that may contain leaked file URLs.
Deno timeout protection for enrichment
fullEnrichHospital now tracks a 45-second time budget and gracefully skips expensive steps (team page scraping, pricing page detection, AI summary) when under 12 seconds remain, preventing Deno execution timeouts.
Backend security audit
Comprehensive audit of all 70+ backend functions. Added missing authentication to searchHospitals, fixed auth bypass in enrichmentTick, implemented atomic $inc usage tracking across all Google Places API functions, and enforced monthly API budget checks.
Removed tech debt
Deleted 4 one-time-use migration functions (migratePricingData, migrateServiceToProcedure, migrateServiceCatalog, getNextUnenrichedHospital) and optimized VCA/Banfield hospital imports to use state-filtered dedup instead of loading the entire hospital table.
v3.4.0
July 9, 2026Chain Logos
Chain hospital logos
Added branded logo rendering for Banfield and VCA hospital chains on search result cards and hospital profile pages, using reliable direct PNG sources for consistent display.
v3.3.0
July 8, 2026Landing & Accessibility
Floating accessibility button
Added a persistent floating ADA preferences button in the bottom-left corner with a custom accessibility icon, linking directly to the accessibility settings section in the user dashboard.
Dashboard screenshot showcase
Added a full dashboard view as the final slide in the "Everything for your pet" landing showcase, giving visitors a complete picture of the pet owner dashboard.
Refined landing messaging
Updated landing page section labels to emphasize "Built for pet owners", "Built for knowledge", and "Built for transparency" across the showcase, education, and pricing sections.
v3.2.0
July 8, 2026Performance & Privacy
Population pipeline performance overhaul
Eliminated recurring Deno timeouts in the Google Places hospital/pharmacy population pipeline by reducing inter-call delay from 2.5s to 0.8s and replacing full-database dedup loading with scoped city-level loading. Batch runs now complete in ~12s instead of timing out at 50s.
GDPR-compliant cookie consent
Rebuilt the cookie consent system with dual cookie + localStorage persistence, versioned consent records, no pre-ticked checkboxes (GDPR compliant), and a dedicated Cookie & Privacy Preferences panel in the user dashboard for managing or withdrawing analytics consent at any time.
Cookie consent persistence fix
Fixed the cookie banner reappearing on every page reload despite prior acceptance — consent now persists reliably across reloads via localStorage with cookie fallback.
Accessibility settings sync
ADA accessibility preferences (font size, high contrast, reduce motion) now sync from the user profile across devices and apply immediately on login.
Conditions library dedup fix
Removed duplicate condition entries (Addison's Disease / Hypoadrenocorticism, Cushing's Syndrome / Hyperadrenocorticism) from the seed library and replaced with unique entries, keeping the dataset at exactly 400 unique conditions.
v3.0.1
July 7, 2026UI & Security
Hero feature card default active state
The Transparent Pricing hero card on the landing page now renders in the deep-green rollover state by default, with white text and icon for immediate visual emphasis.
Invoice image redaction & auto-deletion
Uploaded invoice images are now processed through an AI redaction pipeline that strips PII into a secure text transcript. Original images are automatically deleted after 2 days, with manual deletion available to users and admins.
v3.0.0
July 7, 2026Major Release
Unified price submission pipeline
Invoice uploads and Share-a-Price now share a single service resolution utility and route through the atomic submitPriceContribution backend function, ensuring PriceRecord, PricingContribution, and ServicePricing stay consistent with no missing service IDs or duplicate service definitions.
v2.1.4
July 6, 2026Share-a-Price Fix & Spellcheck
Fixed Share a Price submission error
Price sharing now resolves a service ID before creating records — catalog matches link to a canonical Service, while unrecognized services are saved as custom HospitalService entries tied to the hospital. This resolves the validation error caused by the missing required service_id field.
System-wide spellcheck
Spellcheck is now enabled on all text inputs and textareas app-wide, including onboarding flows, pet profiles, and price-sharing forms.
v2.1.3
July 5, 2026Conditions Library & Admin Tools
Conditions separated into own tab
The Education page now has distinct "Conditions" and "Articles" tabs, making it easier to browse the condition library separately from generated educational articles.
Redesigned condition cards
Condition cards now feature a cleaner layout with uppercase category labels, color-coded severity badges (mild/moderate/severe), and clearer species indicators with contagious flags.
Admin batch condition management
A new "Conditions" tab in the Admin Panel supports search, category/species filters, select-all, and batch deletion of condition records.
v2.1.2
July 5, 2026Search Performance & State Sync
Optimized server-side search
searchHospitals now loads hospitals first, then fetches pricing and reviews only for the current page instead of the entire dataset, eliminating rate-limit failures on large states like California.
Radius auto-syncs to State
When no city location is set, the radius filter now automatically switches to State mode instead of holding a stale distance value; distance-based options are disabled until a location is provided.
v2.1.1
July 5, 2026Search Reliability Fix
Fixed auto-locate race condition
When searching for a city while browser geolocation was still pending, the geolocation callback could overwrite the manually-set coordinates and wipe out results. Manual location searches now take priority over any in-flight geolocation request.
Smart search resolves bare city names
Typing a city name without a state (e.g. "Edgewood") in the smart search bar now resolves to the correct "City, ST" using the hospital database, so geocoding targets the right state instead of an ambiguous namesake in another state.
v2.1.0
July 5, 2026Conditions & Species Education
Condition articles with species-specific content
Educational article generation now includes DiseaseInfo conditions, with species-tailored content (canine, feline, avian, equine, exotic) covering prevalence, breed predispositions, symptoms, and treatment considerations per species.
Species & type filters on Education page
Articles tab now supports filtering by species and content type (Procedures, Services, Conditions), with species badges on article cards.
Batch condition generation
Admin batch generation supports a "Conditions" target type to generate condition articles exclusively, with conditions interleaved in auto mode.
Auto-generation workflow picks up conditions
The 15-minute scheduled article generation now scans DiseaseInfo after procedures and services are exhausted, ensuring conditions are built out automatically.
Article markdown rendering fix
Fixed bold-text rendering issue where articles with zero newlines rendered headings and paragraphs as a single bold block; content is now normalized to proper paragraph breaks.
v2.0.5
July 5, 2026Hero & Education UX
Compact hero section
Reduced hero height from 540px to 380px (mobile) / 440px (desktop) and added object-center cropping to eliminate stretched images.
New hero imagery
Generated a new wide veterinary scene with better composition and text overlay space for the homepage hero.
Admin article generation from Education page
Added an admin-only "Generate Article" button to the Education page that triggers the generateEducationalArticle function and refreshes the article list inline.
v2.0.4
July 5, 2026Cited Educational Content
Structured source citations
Educational articles now require inline markdown citations and a structured sources array with title, URL, publisher, and source type, prioritizing authoritative veterinary references (AVMA, AAHA, Merck Veterinary Manual, Cornell, UC Davis, PubMed).
Verified Sources display
Article detail view now shows a "Verified Sources" section with clickable citation links and publisher attribution.
Faster article generation
Switched LLM model from gemini_3_1_pro to gemini_3_flash for article generation, reducing per-article time from timeout failures to ~46 seconds while maintaining web search capability.
Batch regeneration for unsourced articles
Added regenerateWithSources function and admin "Add Sources" control to backfill citations on existing articles lacking sources.
Admin sourcing controls
Educational content panel now shows source count badges, a Sourced/Unsourced filter tab, and per-article regeneration buttons.
v2.0.3
July 5, 2026Pharmacy Platform Intelligence
Pharmacy product sorting & categorization
Prescriptions tab now groups products by category (Flea & Tick, Heartworm Prevention, etc.) with section headers and alphabetical sort within each group.
Pharmacy platform identification
Detected pharmacy platform (e.g. Covetrus) from store URLs and displayed as a clickable badge with direct link to the platform provider.
Cloudflare bypass for pharmacy scraping
Escalated scrape.do to super=true residential proxy mode to bypass Cloudflare protection on Covetrus pharmacy portals, retrieving real product data instead of LLM-inferred results.
Product image fallback handling
Improved LLM prompt to stop fabricating image URLs; broken or missing product images now display a clean Package icon placeholder.
Changelog page
Added a versioned changelog page accessible from the footer, with the version badge linking directly to it.
v2.0.2
July 4, 2026Presumed Services & Prescriptions Tab
Presumed vs. Confirmed pricing distinction
Services tab now clearly separates invoice-verified pricing from presumed service estimates based on similar hospitals, with inline editing to promote user-verified status.
Prescriptions tab replaces Specialties
Converted the Specialties tab into a Prescriptions store tab, focused on scraping integrated e-commerce pharmacy solutions.
HospitalProduct entity
Created a dedicated entity for pharmacy products and medications with pricing, category, and platform metadata.
scrapeHospitalProducts function
Implemented regex-based extraction for pharmacy product links, handling Covetrus/Vets First Choice platform structures.
Inferred pricing cleanup
Removed all inferred/demo pricing records from TLC Pet Hospital to ensure data integrity before presumed services rollout.
v2.0.1
July 2, 2026Service Catalog & Enrichment Pipeline
HospitalService entity
Created granular, category-based service entity for specialized procedure tracking (TPLO, ACL, laser therapy, etc.).
scrapeHospitalServices standalone function
Offloaded service-specific extraction from enrichHospital to bypass runtime limits, using scrape.do browser JS execution for robust DOM parsing.
scrape.do API migration
Migrated service scraping from LLM-based extraction to scrape.do API with browser-based JavaScript execution for reliable structured data retrieval.
Auto-Enrich Queue
Replaced entity-trigger enrichment with a scheduled queue running every 10 minutes, as bulkCreate operations do not fire entity triggers.
HTML entity decoding
Implemented custom entity-level decoding across all scrapers to clean text artifacts from scraped content.
Fast-first scraping strategy
All enrichment functions now try render=false first, escalating to render=true only if the response is a JS shell, reducing 504 timeouts.
v2.0.0
June 28, 2026Transparency & Data Integrity Overhaul
Community Guidelines with mandatory agreement
Added a Community Guidelines page and enforced agreement via checkbox during registration.
Auto-Batch hospital population
Added Auto-Batch processing to Admin panel for multi-call hospital population with 75s automatic retry on timeout.
Auto-verify Google Places hospitals
All hospitals ingested from Google Places API are now auto-verified at creation.
Service catalog priority categories
Prioritized service catalog display using hardcoded categories (Wellness, Vaccinations, Surgery) in frontend and enrichment logic.
Email extraction pipeline
Added email field to Hospital entity and implemented regex-based extraction in enrichment to complement LLM parsing.
Data provenance on pricing tables
Always include data provenance attribution and links to methodology on all pricing tables; removed inferred pricing from the primary Priced section.
City-skipping optimization
Implemented city-skipping logic in populatePlaces to avoid re-processing existing records and optimize API usage.
v1.9.0
June 20, 2026AI-Powered Features & Partner Tools
AI Pet Triage
Launched AI-powered symptom assessment and triage tool for pet owners.
Vet Matcher
Introduced AI-driven veterinarian matching based on pet needs, location, and hospital specialties.
AI-generated hospital summaries
Auto-generated truthful summaries from pricing, review, and hospital data displayed on hospital profiles.
Education hub with condition library
Built educational resource center with disease/condition details and direct "See treatment costs" CTAs.
Partner dashboards
Launched Hospital Dashboard and Pharmacy Dashboard with messaging, profile management, and analytics.
Invoice upload & price extraction
Enabled pet owners to upload invoices for automated price extraction and contribution to the pricing database.
v1.0.0
June 1, 2026Initial Launch
Hospital search & comparison
Launched nationwide veterinary hospital search with price comparison capabilities.
Google Places integration
Integrated Google Places API for hospital discovery and population across US metros.
Price transparency database
Built the core pricing database with invoice-verified, self-reported, and contributed price records.
Hospital profiles
Created detailed hospital profile pages with services, staff, reviews, and pricing breakdowns.


