@rldatix.com emails receive a native account with password login.
Other emails are approved for Google Sign In.

Enter your @rldatix.com email and we'll send you a link to reset your password.

Market Pulse
Generate branded market intelligence reports for any location, by hospital or practice type.
📍
Enter Location
City + State or Zip Code + Radius
📋
Upload Spreadsheet
CSV or Excel with multiple locations
Patient Pulse
See your market the way a patient's AI assistant sees it — providers ranked purely by Pulse Score, exactly as they surface when patients ask.
📍
Enter Location
City + State or Zip Code + Radius
📋
Upload Spreadsheet
CSV or Excel with multiple locations
Pulse Diagnostic
Run a focused diagnostic on a single hospital or practice: its Pulse Score, what AI assistants currently see, and the roadmap to improve it.
Pulse Comparison
Compare two organizations head-to-head on Pulse Score, with the same depth as a full diagnostic for each.
Entity A
Analyzing…
Progress
  • Starting
  • Generating analysis
  • Extracting data
  • MQCR Battery
  • Rendering PDF
Live Output
Admin
Manage user accounts and access requests.
All Users
Loading…
Feedback
Report a bug or suggest a feature. All submissions are visible to the team.
Title
Type
Details
Attachments (optional — screenshots, PDFs, etc.)
Loading…
Events Pulse
Upload an event attendee list to generate a Pulse Diagnostic for every practice or hospital — and download an enriched CSV with scores.
Event Setup
Event Name
Event Date
Entity Type
Attendee List CSV
No file chosen
Required columns: name, city, state — one row per attendee.
Each entity will produce both a full Pulse Diagnostic and a teaser (summary-only) PDF.
Bypasses today's cache lock and the 90-day score cache. Use when you need fresh results for entities already run today.
History
All past analysis runs. Click Download to retrieve a PDF report.
Loading…
AI Visibility Trends
Track how a provider's AI visibility changes over time.
Loading…
Release Notes
What's new in Pulse.
Version 1.4
Released July 19, 2026
New Features
Organization-Level Pulse Diagnostics for Specialty Practices
Pulse Diagnostics for specialty practices now operate at the full organization level rather than focusing on the individual location used to initiate the report. When a specialty practice is selected, Pulse automatically identifies the parent organization and discovers all sibling locations under that brand. The report narrative, findings, recommendations, and scores then address the entire practice network — not the single office entered at the start. A multi-step initiation flow walks through parent org confirmation before running, and the report title defaults to the AI-identified parent organization name.
Parent Organization Discovery & Location Roster Confirmation
A new confirmation step in the Pulse Diagnostic initiation flow surfaces the AI-identified parent organization name and the full list of discovered sibling locations before the report runs. Each location can be individually included or excluded. The confirmed roster is passed directly to the analysis pipeline, skipping redundant discovery work and ensuring the report reflects exactly the locations the user intended to include.
Practice Composite Report
A new report type that aggregates reputation data across multiple clinic locations for a single practice group or hospital network. The report generates a reputation table showing Google, Healthgrades, Vitals, WebMD, Yelp, and RateMDs ratings for each participating practice, with hyperlinks to their public profiles. Practice Composite is available for both hospital systems and specialty practice groups and is accessible from the Report Creation section of the sidebar.
Physician Roster & Individual Ratings
Each practice in a Practice Composite now includes a physician roster with individual reputation data. Physicians are discovered in real time from the NPPES NPI Registry (MDs and DOs only — no PAs or Nurse Practitioners) and enriched with per-physician Google ratings fetched via the Google Places API alongside Healthgrades, Vitals, WebMD, Yelp, and RateMDs data. Physicians appear as sub-rows beneath each practice entry, sorted by total review count.
Events Pulse
A new report type for generating batch Pulse Diagnostics from a CSV list of event attendees. Upload a CSV with name, city, state, and optional URL columns using the provided template; the app resolves each entity via Google Places, auto-confirming single matches and presenting a dropdown for ambiguous results. After confirmation, analyses run five at a time. Each entity receives an individual Pulse Diagnostic PDF (named with an EventReport suffix) and the run produces an enriched CSV appending Pulse Score, letter grade, and band label to the original data, plus a ZIP bundle of all PDFs. Event runs are shared across all logged-in users and appear in the History section. Events Pulse is accessible from the left navigation.
Admin: Delete Event Runs
Admin users can now delete event runs directly from the History page. Deleting an event removes the run record, all associated analysis runs and provider data, and the entire event folder on disk — including all PDFs, the enriched CSV, and the ZIP. A confirmation prompt prevents accidental deletion. The Delete button is visible only to users with the Admin role.
Improvements
Editable Report Title with Live Preview
The Pulse Diagnostic initiation flow now shows a live report title preview as soon as a candidate is selected or an organization is confirmed. For specialty practices, the title defaults to the AI-identified parent org name. Users can override the title at any time before running — the edited name is carried through to the PDF cover page.
Candidate Row Highlighting
When selecting a location candidate in the Pulse Diagnostic initiation screen, the selected row is now highlighted in teal, making the active selection clearly visible before moving to the next step.
Page Numbers in PDF Reports
All generated PDF reports now include page numbers in the footer, making it easier to reference and navigate printed or shared copies.
NPPES Registry-Based Physician Discovery
Physician discovery now uses real-time lookups against the NPPES NPI Registry rather than Claude's training data. The system performs a cascading search — seeding from the practice's registered NPI-2 organizational records to obtain confirmed location postal codes, then searching NPI-1 individual records at those locations. A specialty taxonomy filter is applied throughout to exclude co-located non-specialty providers sharing the same building. For practices without an NPI-2 entity in NPPES, a Google Places fallback resolves the building address and clusters nearby physicians by specialty using 8-digit building-level postal grouping.
Real-Time Google Ratings for Physicians
Individual physician Google ratings and review counts are now fetched live via the Google Places API — one concurrent lookup per physician — replacing the prior approach of asking Claude to recall time-sensitive review data from training. Each lookup validates the returned listing name against the physician's last name before accepting it, preventing misattribution from common-name collisions.
Live Analysis Progress on Events Pulse
The Events Pulse progress screen now shows the same phase list and live output stream used on other report pages. Three phases — Starting, Analyzing entities, and Finalizing reports — advance in real time as the job runs. Each entity's result is logged to the stream with a status prefix: when started, with score and grade when complete, and when skipped. The phase panel and stream appear above the existing progress bar and entity row list.
URL Column in Events Pulse CSV
The Events Pulse CSV template now includes a url column alongside name, city, and state. URLs supplied in the upload are stored with each entity and written as the fourth column in the enriched EventReport CSV output, preserving the original link data alongside the appended Pulse Score, grade, and band.
Bug Fixes
  • Report cover title showing search anchor instead of organization name — The PDF cover page was using the Google Places search anchor location (e.g., "IBJI Doctors' Office - Chicago-Avondale") as the title even when a parent org name or custom title was set. The cover now correctly uses the report title field, falling back to entity name only when no override is present.
  • Custom report title not carried to PDF — A guard condition in the run request was silently dropping the report title when it differed from the entity name in an unexpected way. The condition has been removed; the report title is now always sent when set.
  • Practice Composite PDF download returning 404 — The composite PDF was not stored under the standard report history path, causing the download link to return 404. A dedicated /api/composite/{job_id}/pdf endpoint now serves the file directly from the completed job.
  • Duplicate practices in composite for same-name multi-location groups — Practices with multiple locations registered under the same name were appearing as duplicate entries in the composite table. A post-processing deduplication step now collapses same-name records into a single entry.
  • Sibling discovery failing for specialty practices — The sibling-location discovery step was using name comparison instead of object identity for filtering, causing specialty practices to incorrectly exclude themselves from their own sibling list. Fixed by switching to identity comparison.
  • Events Pulse producing 0 reports — All entities in an event run were silently marked as skipped because individual_report was passed as a keyword argument to analyze_practice, which does not accept that parameter. The argument has been removed; analyze_practice handles individual report generation internally.
  • Individual report runs showing [object Object] — A serialization error was causing the run payload to render as [object Object] in the live output stream instead of the report content. Fixed by ensuring the payload is correctly stringified before dispatch.
  • PAs and Nurse Practitioners included in physician rosters — Some mid-level providers (PAs, NPs, CRNAs) who self-register a physician taxonomy code alongside their actual credential in NPPES were being included in physician discovery results. Fixed by adding an explicit exclusion check — any record with a PA/NP/CRNA taxonomy code is excluded even when it also carries a physician taxonomy.
  • Co-located non-specialty physicians contaminating rosters — At shared medical buildings, physicians from unrelated practices (urologists, ENTs, ophthalmologists) were being seeded into orthopedic clinic rosters because the NPPES postal-code search returns all providers at a given address. Fixed by applying a specialty taxonomy filter in the NPPES seed search whenever the practice name implies a specialty, restricting results to providers whose taxonomy matches the practice type.
  • Practices with no NPI-2 entity returning zero physicians — Practices that have not registered a group NPI-2 in NPPES (common for smaller independent groups) previously returned no physicians. A Google Places fallback now resolves the building postal code and clusters physicians by building prefix, recovering discovery for these practices.
Version 1.3
Released July 9, 2026
New Features
Pulse Comparison
A new report type that runs a full Pulse Diagnostic on two organizations simultaneously and produces a single combined PDF. Select each entity using the same guided search flow as Pulse Diagnostics — including aggregate and specialty options — then click Run Pulse Comparison. The report opens with both organizations' overviews and Pulse Verdicts, followed by a structured Comparison Summary (a headline, a side-by-side similarities panel, a key differences panel, and a 2–3 paragraph analyst narrative). The full Pulse Diagnostic deep-dive for each entity — card, Diagnostic Assessment & Roadmap, and Improvement Opportunities — follows in sequence. Pulse Comparison is available to all signed-in users under Report Creation in the sidebar.
Improvements
Feedback Item Numbers & Inline Editing
Every feedback submission is now assigned a unique sequential number displayed as the first column in the list — making it easy to reference items in conversation (e.g. "let's look at #12"). Admins can edit any existing item inline without leaving the page: click Edit on any row to open an edit form directly beneath it with fields for title, type, body, status, and an internal notes field. Existing items have been retroactively assigned numbers in chronological order.
Market Pulse & Patient Pulse — Improvement Section Replaced with CTA
The Diagnostic Assessment & Roadmap section in Market Pulse and Patient Pulse reports no longer includes action items — those recommendations are specific to a single organization and are misleading in a multi-provider report. The section is now titled Improve Your AI Visibility and contains a concise paragraph directing the reader to request a Pulse Diagnostic. Pulse Diagnostics retain the full grouped improvement section unchanged.
Trends — Auto-Run on Add, Run Count, Date Display
Adding an entity to the Trends list now immediately fires an initial analysis run so the first data point is captured right away — no need to click Run Now after adding. The entity list table now includes a Runs column showing how many snapshots have been collected for each entity. The Next Run column now displays a clean date only, without the timestamp.
Trends Available to All Users
The Trends page and all underlying tracking API endpoints are now accessible to every signed-in user, not just admins. The nav button is visible to all roles on login.
Bug Fixes
  • Trends API calls failing silently — All tracking functions (add entity, load trends, run now, toggle active) were calling an undefined _fetch() function instead of the authenticated api() wrapper, causing every action to fail with "Failed to add entity — try again." Fixed by replacing all occurrences with api().
  • Pulse Comparison PDF download returning 404 — The comparison PDF is not stored in the analysis history database (both sub-runs intentionally skip individual PDFs), so the standard /api/reports/{run_id}/pdf endpoint returned 404. A dedicated /api/compare/{job_id}/pdf endpoint now serves the file directly from the completed job.
  • Python 3.9 incompatibility in server model — The FeedbackEditRequest model used str | None union syntax introduced in Python 3.10, causing the server to fail on startup. Fixed by replacing with Optional[str].
Version 1.2
Released June 30, 2026
New Features
Google SSO & RLDatix Native Accounts
Pulse now supports two authentication tracks. Any user can request access and sign in with their Google account via OAuth — once an admin approves the request, the user receives an email and can sign in immediately. Users with an @rldatix.com email address can alternatively create a native account with email and password; an admin invitation triggers a set-password link sent to their inbox. Both tracks flow through a unified login screen.
Admin Panel
A new Admin section (visible only to admin-role users) provides full user and access management: approve or deny pending access requests, invite new users by email, change user roles, deactivate or reactivate accounts, and resend approval or set-password emails when needed. All users and all pending requests are surfaced in separate tabs.
Self-Service Password Reset
RLDatix native account holders can now reset their own password without admin involvement. A Forgot Password? link on the login screen accepts an email address and sends a secure, time-limited reset link. The reset email carries appropriate copy ("Password Reset Request") distinct from the admin-approval message.
Feedback Page
A dedicated Feedback section lets any signed-in user submit a bug report or feature request. Each submission includes a title, type, submitter name, and detail description. All submissions appear in a shared, searchable list with sortable columns — Title, Type, Submitted By, Date, and Action. Admins can mark items as Accepted, Fixed, Completed, or Rejected; Fixed and Completed items move below a divider line to separate resolved work from open items.
AI Visibility Methodology Appendix
Every generated report now includes a full methodology appendix covering the Prompt Battery (31 standardized queries across 8 categories) and the Scoring Rubric (four-pillar architecture with per-signal point tables, cross-cutting modifiers, letter grade bands, and verification status conventions). The appendix gives curious readers a complete, auditable account of how Pulse Scores are derived.
Pulse Diagnostic
A new report type that generates a deep-dive Pulse Diagnostic for a single named provider — hospital, practice, or physician group. Pulse Diagnostics include a full Organization Overview, Diagnostic Assessment & Roadmap, Key Takeaways, and Data Limitations section, plus the full scored card with tier bars, quality badges, and location detail. Available on the Market Pulse page via the Pulse Diagnostic toggle.
What AI Assistants Currently See
Every provider card now includes a callout block describing how Claude, ChatGPT, and Gemini currently characterize the provider — the narrative AI assistants deliver to patients asking for guidance. The block is labeled as an AI Summary sourced from Claude, ChatGPT, and Gemini, and includes a note explaining that this report analyzes the public signals AI assistants use to surface and rank providers.
Score Band Label
The Pulse Score on each provider card now includes a plain-language band label — Strong (80+), Good (65–79), Fair (50–64), Limited (35–49), or Weak (<35) — displayed inline with the numeric score for at-a-glance readability.
Weighting Profile Chip
Each card now shows a Procedural or Relationship chip below the Pulse Score, indicating which weighting profile was applied. Procedural profiles weight Outcomes & Safety most heavily; Relationship profiles weight Experience & Reviews and Access & Fit.
Outcomes & Safety Block
Every provider card now includes a dedicated Outcomes & Safety section that explicitly surfaces the Leapfrog Hospital Safety Grade and CMS Overall Star Rating. When data is absent, the block displays "Not currently participating in Leapfrog survey" or "No CMS Overall Star Rating published" — making non-participation visible rather than silent.
CMS Star Rating Badge
The Quality & Accreditation section now displays the CMS Overall Hospital Quality Star Rating (1–5 stars) as a color-coded badge when available, giving readers an immediate read on CMS-measured clinical quality alongside accreditations and safety grades.
U.S. News Ranking Badges
Hospitals recognized by U.S. News & World Report now display specialty-specific badges in the Quality & Accreditation section — a gold badge for nationally ranked programs and a teal badge for high-performing designations, each labeled with the relevant specialty.
Trauma Level & Teaching Status Pills
Hospital cards now display Trauma Center designation (Level I, II, or III) and Teaching Hospital status (Major Teaching, Minor Teaching) as colored pills in the card header row, making these high-signal credentials immediately visible without reading into the body text.
Pulse Improvement Roadmap (Teaser)
The Teaser Report now includes a blurred Pulse Improvement Roadmap section after the provider cards, showing prospects that a prioritized action plan is part of the full report. The roadmap content is intentionally obscured to drive consultation requests.
White-Label Branding
User accounts now carry a Brand attribute that controls the visual identity of the application and all generated reports for that user. Each brand variant has its own color palette, typography, and logo assets — the app interface and every PDF report automatically apply the assigned brand on login, with no configuration required per report. Admins can assign or change a user's brand from the Users tab in the Admin panel, either during invite or at any time afterward. Two white-label variants are available alongside the standard theme.
AI Visibility Trends
A new Trends section (available to all signed-in users) tracks Pulse Scores over time for any named organization. Add an entity using the same guided search flow as Pulse Diagnostics — choose the organization, city/state, whether to aggregate related facilities, and a collection schedule (weekly, monthly, or manual). An initial analysis run fires automatically the moment you add the entity so the first data point is captured right away. Subsequent runs occur on the chosen schedule via Cloud Scheduler, or on demand using Run Now. The trend view displays interactive charts for Pulse Score (AI Visibility), tier score breakdown (Outcomes, Credentials, Experience, Access), Google rating, and Google review count over time. The entity list shows last run date, next scheduled run date, and a running count of snapshots collected.
Improvements
Sidebar Navigation Reorganized
The left navigation is now organized into three labeled sections separated by inset divider lines: Report Creation (Market Pulse, Patient Pulse, Pulse Diagnostic), Reporting (History, Trends), and Administrative (Feedback, Admin). Section labels and dividers collapse automatically on tablet and mobile layouts. The Admin entry remains visible only to admin-role users.
Enhanced Report Research — Training vs. Retrieval Framework
All three report types (Hospital Market, Specialty Market, Individual) now research and surface two distinct AI visibility channels for each provider: training-data presence (Wikipedia/Wikidata articles, Reddit and forum sentiment, long-lived news coverage) and retrieval-time signals (Google Business Profile hygiene, CMS pages, accreditation sites, website machine-readability). The "What AI Assistants Currently See" block explicitly frames which channel is driving each provider's characterization and where the gap lies.
New Research Signals in Every Report
The AI analysis now actively researches and reports on: Wikipedia/Wikidata article status (accuracy, currency, structured record completeness); Reddit and community forum sentiment (local subreddits, dominant themes); website machine-readability (Schema.org markup, llms.txt presence, crawlable vs. PDF/JS-buried content); and Yelp/Facebook listing status. These signals feed both the provider narrative and the improvement recommendations.
Diagnostic Assessment & Roadmap
The closing section of each report has been renamed from Practical Advice for Patients / Key Takeaways to Diagnostic Assessment & Roadmap. The section is now action-oriented and uncapped — every material gap is listed with (1) the current state, (2) the concrete action to take, and (3) which channel it primarily affects (training-data presence vs. retrieval-time signals). Pulse Diagnostics now regularly surface 10–14 specific improvement items.
Improvement Opportunities Grouped by Category
The Diagnostic Assessment & Roadmap section now organizes action items into labeled groups rather than a single flat numbered list. The three standard categories are Your Website (Technical & Content Fixes), Third-Party Listings & Profiles, and Reputation, Press & Community (Long-Term Training Data) — each with a one-line description of its scope. When Claude identifies material gaps that don't fit those three buckets it creates additional sections dynamically. Item numbers remain globally sequential across all sections for easy cross-reference.
Teaser Reports — "What AI Assistants Currently See" Now Visible
In teaser-mode reports the What AI Assistants Currently See section is now shown in full alongside the Pulse Score and tier bars. The blurred region now begins at Public & Social Ratings. This gives prospects a meaningful sample of the analysis quality before requesting the full report.
History Search & Full-Column Sorting
The History page now includes a real-time search bar that filters by location or report filename — useful for finding a specific hospital or practice report by name. Every column (Date, Location, Name, Type, Providers) is now sortable by clicking the column header; clicking again reverses the sort direction. A new Name column displays the PDF filename for each run.
Outcomes & Safety Hidden When No Data Exists
When both Leapfrog and CMS data are absent for a provider, the Outcomes & Safety section is now omitted entirely from the report card rather than showing empty or placeholder text. The absence of participation is instead surfaced as an Areas for Improvement item.
"Areas for Improvement" Label
The weakness section on all four card types (hospital, specialty, individual, patient perspective) has been renamed from Areas to Note to Areas for Improvement to better reflect how these findings should be interpreted and acted on.
Uppercase Input Standardization
All free-text fields on the report creation pages (city, specialty, organization name) now display input in uppercase as you type. The server normalizes values to title case and applies spell correction before they appear in the report.
Public & Social Ratings Section Header
The Google stats block on each provider card is now grouped under a Public & Social Ratings section label, making it visually distinct from quality accreditations and clinical tier scores. The block continues to show the verified Google front-door rating, system-wide weighted aggregate, footprint breadth, and third-party aggregate (Healthgrades, Vitals, WebMD).
Enriched Sub-Location Detail
The Includes Locations section on hospital system cards now shows the Google rating, review count, and street address for each sub-location — not just the name. This makes it easy to compare individual campuses within a system at a glance.
Rebranded Practice Detection
The evidence-gathering step now identifies when a practice has recently rebranded and cross-references historical name variants against current public listings. This prevents the same practice from being counted twice under its old and new names, and ensures Google verification uses the name currently visible to patients and AI assistants.
Inactive Listing Detection in Specialty Evidence
Google listings that have no public rating are now flagged as potentially inactive or defunct during evidence gathering for specialty reports, reducing the risk of scoring a closed or merged practice as an active competitor.
Teaser Report Blur Refinements
Blur levels on the Teaser Report have been calibrated: provider detail cards use a 2px blur to obscure specifics while keeping the card structure readable, and the Pulse Improvement Roadmap uses a slightly stronger 2.1px blur to emphasize that the full roadmap content requires a consultation.
Outcomes & Safety Scoring for Thin Evidence
Individual reports and specialty reports with limited public data (no confirmed CMS star rating or Leapfrog grade) now use a richer fallback chain to compute Outcomes & Safety scores. Level I trauma centers floor at 62–72, Level II at 55–65, and Joint Commission–accredited hospitals with major clinical programs at 50–60 — reflecting the meaningful quality assurance those designations represent even when CMS data is not publicly confirmed.
Bug Fixes
  • Physician count pill overflow — Long descriptive phrases returned for physician count (full sentences instead of compact values) were truncating mid-word in the card header. Pill now renders only when the value is 60 characters or fewer.
  • Diagnostic Assessment showing entity name — In Pulse Diagnostics, the assessment section was displaying the provider's name as a sub-heading instead of the analysis content. Corrected by updating the extraction prompt to explicitly map assessment paragraphs and exclude entity name labels.
  • Outcomes & Safety null in Pulse Diagnostics — The Outcomes & Safety tier score was returning null for Pulse Diagnostics because the evidence block for that mode contains only Google Places data. Fixed by expanding the scoring rubric to use narrative content (trauma designation, accreditations, program depth) as authoritative evidence when structured quality data is unavailable.
  • Duplicate locations in Includes Locations — Hospitals listed as sub-locations of a parent system were sometimes also appearing as standalone ranked entries. A post-processing deduplication step now removes any consolidated location whose name matches a separate top-level ranked provider.
  • Blank reports for large markets — Structured extraction was hitting the token limit on markets with 14+ providers, producing zero scored providers. Raised max tokens from 16K to 32K and switched to streaming transport to avoid the 10-minute request timeout.
  • Teaser CTA phone number — Updated the contact number displayed on Teaser Report cards and the cover to 866.338.8270.
  • Spell correction mangling location names — The automatic spell corrector was altering correctly spelled city names, specialty terms, and organization names, causing them to appear incorrectly in reports. Spell correction has been removed; input is now normalized to title case only.
  • Password reset email sent wrong copy — The forgot-password flow was triggering the admin-approval email ("You're approved! Your access request has been approved") instead of a neutral reset message. The reset email now correctly reads "Password Reset Request."
Version 1.1
Released June 28, 2026
New Features
Patient Pulse
A new analysis mode accessible from the left navigation. Unlike Market Pulse reports (which group results by hospital size or practice affiliation), the Patient Pulse report ranks all providers in a single list ordered purely by Pulse Score — reflecting the order a real patient would encounter them when asking an AI assistant for guidance. Supports both city/state and ZIP + radius searches, and includes full spreadsheet upload for batch runs.
Teaser Report
A prospect-ready summary report available on the Patient Pulse page. Each provider entry shows only the name, physician count, overall grade, Pulse Score, and four tier bar charts. A call-to-action prompts the recipient to contact RLDatix at 801.998.2830 or book a demo. The cover is branded as a Patient Pulse Summary with a direct link to the RLDatix demo booking page.
ZIP Code + Radius Search
Both Market Pulse and Patient Pulse now support location search by ZIP code and radius (1–25 miles). The system resolves the ZIP to the nearest city/state for the analysis, and the PDF cover displays both the resolved city and the original ZIP + radius used.
Provider Website URLs
Each provider card in the PDF now displays the organization's primary website URL as a clickable link, positioned just below the provider name.
Real-Time Web Search
Reports now use Anthropic's native web search to refresh time-sensitive data — current U.S. News rankings, Leapfrog safety grades, CMS star ratings, Magnet status, Castle Connolly recognitions, and recent market events — before generating the analysis.
System-Wide Weighted Reputation
Hospital systems with multiple locations now display a review-count-weighted aggregate Google rating across all locations, giving a more accurate picture of system-wide patient experience than any single campus listing.
Improvements
Hospital Ownership Aggregation
Hospitals owned by the same parent entity (HCA, Ascension, BSW, etc.) are automatically consolidated into a single ranked entry with constituent campuses listed beneath. Enabled by default.
Hospital Size Classification
Hospital reports split into two sections: Large & Major Hospitals (academic medical centers, major teaching hospitals, 200+ bed regional facilities) and Community & Smaller Hospitals (community, critical access, and specialty facilities).
Exhaustive Provider Discovery
The AI is now required to find and rank every hospital, practice, or group in the market — not just prominent ones. Reports that omit providers are explicitly flagged as incomplete.
Navigation Renamed & Tooltips Added
New Analysis has been renamed to Market Pulse. Hover tooltips have been added to all three navigation items describing their intended audience.
Structured PDF Filenames
Reports are now named with a consistent, readable convention: City_State_Type-YYMMDD-HHMM.pdf. ZIP searches include the ZIP code; Teaser reports are labeled Summary-Report; Patient Pulse reports are labeled accordingly.
Version Label in Sidebar
The sidebar footer now shows Pulse Version 1.1 above the build ID and deploy timestamp.
Aggregate Checkbox On by Default
The "Aggregate related facilities into parent systems" option is checked by default on both pages, with an updated tooltip explaining exactly what aggregation does.
Deterministic Pulse Scores
Pulse tier scores are now computed from verified evidence data (CMS star ratings, Google reads) using the explicit anchor rubric, rather than being read from the narrative text generated in the analysis phase. Running the same market twice now produces the same scores every time.
Improved Google Places Error Diagnostics
When the Google Places API returns an error, the full API response body is now included in the message displayed in the report, making it easier to identify the root cause without inspecting server logs.
Bug Fixes
  • Google Places 400 error — Fixed API parameter name (maxResultCountpageSize) after Google renamed it when Places API (New) exited preview.
  • DuckDB startup crash — Fixed "transaction aborted" error on Cloud Run by pre-checking column existence before running migrations.
  • Pydantic validation errors — Fixed crash when Claude returned null for optional string fields in the tool call response.
  • "Small physicians" label — Vague physician count words (e.g. "small", "few") now render as readable phrases ("small number of physicians").
  • Filename slashes on macOS — Colons in timestamps appeared as / in Finder; replaced with dashes.
  • Deprecated API parameter — Removed temperature parameter that is not supported by claude-opus-4-8.