New Features and Enhancements
Clear Message for Retired Legacy Reports (BC-26733)
Opening an old link or bookmark to a legacy report that has been retired returned a generic server error. BriteCore now shows a message that the report is retired and can no longer be run from the Reports list, naming its SQL Editor replacement when one exists.
Redesigned Reinsurance Page With Default Policy Types Across Effective Dates (BC-26749)
The Claims > Components > Reinsurance page has been rebuilt with a searchable, paged contract list and an edit dialog for contract details, reinsurers, retention terms and default policy types, and nothing is saved until the user clicks Save. Default policy types now apply to that policy type on every effective date, so contracts attach automatically to claims on policies from any effective date instead of only the one in place when the default was set. Existing defaults carry over automatically.
Cost Checks for SQL Runner Reports at Save (BC-26526)
In the SQL editor, BriteCore now checks SQL Runner report sheets at save for query patterns known to consume excessive database resources, such as a join that does not relate the joined table to anything. Depending on the site's configuration, these checks can record, warn about, or block costly sheets, and only sheets whose SQL has changed are checked, so existing reports keep working. Previews of report sheets that use UNION no longer fail, and a query that fills temporary database storage is no longer retried automatically.
Date Fields Accept Short Date Formats and Reject Invalid Dates (BC-26965)
Many date fields shown as MM/DD/YYYY, including claim Accounting dates, Information > Dates, Contacts settings, and Underwriting due dates, now accept dates typed in shorter forms such as 6/30/2027, 12/31/27, or 06302027 and save them in the standard format. Previously these entries were silently dropped, and a date that does not exist, such as 13/45/2027, was rolled over to a different date. Such a date is now rejected: the field keeps its previous value and a message asks the user to enter the date as MM/DD/YYYY.
Clear Message When Adding an Exposure Requires a Remap (BC-24996)
On a claim whose existing exposures are still on a previous product version, adding a new exposure failed with an error that showed only an internal ID. BriteCore now explains that the claim's existing exposures must first be remapped to the current product version, using the exposure remap offered when the claim's loss date is saved, so users know how to continue.
Lien Holder Policy Lookup by Insured Name and ZIP Code (BC-26095)
A new read-only API endpoint lets lien holders using LenderDock VeriFi find a policy by the insured's name and the insured property's ZIP code when they do not have the policy number. Each matching policy is returned with its policy number, status, term dates and current revision, sorted by policy number.
Description Field When Uploading Claim Reports (BC-26793)
On the claim page's Information tab, the Adding Report dialog now includes an optional Description field of up to 255 characters, and each report row has an Edit pencil for changing it later. The Editing Report dialog now confirms success only when the change is saved, and otherwise shows the reason and stays open.
Contractor Description on Claim Parties (BC-26794)
On the claim page's Parties tab, the Add and Edit party dialogs now include an optional Contractor Description field of up to 250 characters for parties with the Contractor role, and the description appears in the party's expanded details. Descriptions entered on the previous claim page carry over, and removing the Contractor role clears the description.
Mortgagees Listed in Policy Order When Making Claim Payments (BC-26795)
In the claim payment dialogs, the Payee(s) list now shows mortgagees in the same order as on the policy as of the loss date, instead of an order that could change from one load to the next. Because selected payees print on the check in list order, the first mortgagee on the policy now appears first on the check's payee line.
Pre-Select Portal Invitation on New Quotes by Policy Type (BC-26580)
On the policy type page, administrators can now turn on Pre-select portal invitation on new quotes, found under Enable e-Delivery Prior to New Business. When it is on, Enable e-delivery is selected automatically on new-business quotes for that policy type, so insureds are invited to the insured portal without the agent having to select it on every quote. The setting is off by default, and documents for invited insureds who have not yet enrolled are held until they enroll or the invitation expires.
Interactive Report Runs Recorded in Report Run History (BC-23097)
Reports that users ran and downloaded directly from the Reports list were not recorded in report run history, so a report used every week could appear unused in the reports inventory. BriteCore now records each of these runs alongside scheduled and Run Now executions, giving an accurate picture of which reports are in use.
Removal of Replaced Legacy Reports (BC-23238)
Legacy reports that were renamed with a _legacy_ suffix during the move to the SQL Editor, and whose SQL Editor replacement already exists, have been permanently removed now that their 90-day grace period has passed. A small number of empty report definitions flagged in the reports inventory were also removed. The SQL Editor replacement reports are unchanged and continue to run as before.
Ranked County Selection on the Property Page (BC-23929)
On the Property page used to edit addresses on policies, choosing an address suggestion now resolves the address through the connected geolocation provider and offers counties in the provider's ranked order, matching the Quote Wizard. The ranked county list is now saved with the property, so it is kept after the page reloads and when opening a property that was already resolved in the Quote Wizard.
Improved Property Quote Creation Performance in the Quote Wizard (BC-23951)
Improved quote creation performance in the Property Quote Wizard by reducing the process from two requests to one, allowing users to move to the next step more efficiently. This enhancement is available when the Unified Quote Engine setting is enabled, which remains disabled by default. Existing behavior is unchanged when the setting is disabled.
Address Verification and Geolocation Provider Support (BC-23801)
BriteCore now supports multiple address verification and geolocation providers through a single provider-agnostic layer, replacing the previous two-option provider setting. Verisk Lightspeed is available as a new provider alongside the existing Google provider, which continues to work as it does today. Administrators choose the provider for a site through configuration, so switching providers no longer requires a code change or deployment. Address lookups for contacts, properties, PO Box mailing and billing addresses, the Quote Wizard Setup tab, and renewals and endorsements all use the same layer, and each returns a standardized address, city, county, state, ZIP code, and latitude and longitude. Existing geography overrides still apply with every provider. Provider credentials are stored in the existing encrypted vendor credential storage. If a provider times out or returns an unusable result, users see a clear message instead of a raw error.
Claims Honor the Payment Date Override Setting (BC-18449)
In the new claims experience, the Allow Claim Payment Date Transaction Override setting was ignored, so users could backdate or postdate payments even when the setting was turned off. When the setting is off, the payment Date field is now locked in the Accounting tab's Add Payment dialog and when creating or editing a transaction, consistent with the legacy accounting page.
Mortgagee Status Relative to the Date of Loss on the Parties Tab (BC-21961)
On a claim's Parties tab, a mortgagee that the policy removed effective on or before the date of loss (DOL) appeared without any status. On sites that pull current mortgagees, each mortgagee now shows a color-coded DOL status (no change, added since the DOL, removed since the DOL, or not on the policy), and selecting it compares the policy at the date of loss with the policy today. These statuses also now appear when choosing payees in the payment dialog.
Clearer Add and Edit Actions on the Claim Information Tab (BC-23953)
On a claim's Information tab, everyday card actions such as Edit and Add appeared as small icons or text links, while the rarely used Bifurcate Claim was the most prominent button on the page. Cards now show labeled buttons such as + Add Assignment, + Add Report, + Add Photo, + Add Loss Address and Edit, and Bifurcate Claim is now a secondary button. The Loss Address block on the File a Claim page uses the same buttons.
Named Insured Changes Since the Loss Date Flagged on Claims (BC-23954)
On the claim page's Parties tab, named insureds are now tagged when a mid-term policy change has added or removed them since the date of loss, following the same setting that already shows current mortgagees on claims. Named insureds added to the policy after the loss appear as read-only rows that can be selected as payees, and the payment dialogs warn when a selected payee is recorded as deceased. Adjusters can now see when a claim's insureds no longer match the policy before issuing a payment.
Admin Alert Emails Follow Policy Type and State Overrides (BC-25664)
Admin alert emails for submissions, endorsements, uploaded attachments, straight-through processing (STP), loss reports and claim submissions now go to the recipient list set for the policy's type, or for its state when there is no policy type override, before falling back to the global list. When an override applies, the agent's Direct Application Activity To address also receives the email. The Print Audit alert now reaches its configured list, and agent-submitted claims create the Claim Acknowledgement Letter whenever its setting is on.
Return Payment Transaction Type for Returned Claim Funds (BC-21886)
Claims now has a Return Payment transaction type for recording funds that come back to the carrier after a claim payment, such as a vendor refunding part of a security deposit, an overpayment refund, or an insured returning funds after recovered property is found. Previously these returns had to be entered as recoveries, which inflated subrogation and salvage metrics and required adjusters to create a reserve just to record the money. From the claim accounting tab, users record a return payment against a specific original payment, enter the amount returned for Loss, Adjusting, and Legal, and can make several partial returns against one payment. Returns cannot exceed what was originally paid in each category. The financial ledger shows the return as its own row linked to the original payment and shows the resulting net paid at the exposure and claim level. Return payments reduce paid and incurred amounts and restore the reserve on open claims, can be recorded on closed claims without reopening them, and can be voided. They are never issued as checks, are excluded from all recovery reporting, and require their own permission.
Optional Single Sign-On for ISO ClaimSearch (BC-26292)
The ISO ClaimSearch integration can now be set up without single sign-on (SSO) to the ClaimSearch portal, so carriers can submit claims and receive match results while their SSO agreements with ISO are still pending. BriteCore now checks whether SSO is configured and shows the ClaimSearch Portal and View in Portal buttons in the claims history panel only when it is. When SSO is configured later, the buttons appear without reinstalling the integration.
One Consistent Notes Experience Across BriteCore (BC-26380)
Notes pages for policies, contacts, lines, settings, claims and the Agent Portal now share one redesigned notes panel, replacing three older versions that looked and behaved differently. The panel keeps the existing capabilities, including keyword, date range and attachment filters, adding and editing notes, and creating alerts by date or event with recipient search and Email immediately. Every notes page stays at the same address, and improvements to notes now apply everywhere at once.
Faster Claims Processing Page With Paged Queues (BC-26428)
The Claims > Processing page now loads its pending payments and pending emails queues one page at a time, with search and sorting, instead of loading every unexported payment at once. On sites with large payment backlogs the page could take around two minutes to open, and it now opens quickly regardless of queue size. The page has also been updated to the current BriteCore design.
ACH Payment Support for Return Premiums and Claim Payments (BC-26587)
BriteCore extended its outbound ACH payment engine, which previously paid only commission payments, to handle return premiums and claim payments. Each item is checked for eligibility before it is queued, a snapshot of what it pays is saved with the payment attempt, and the return premium or claim payment is marked paid when the funds settle. This is a foundational step, and paying these items by ACH becomes available as the remaining parts of the feature are delivered.
Redesigned Perils and Peril Groups Pages (BC-26699)
The Claims > Components > Perils and Peril Groups pages have been rebuilt on the current BriteCore design, matching the Catastrophes page. Closing the Add popup without saving no longer leaves an empty peril or peril group behind. Peril codes for ISO APLUS reporting, LexisNexis C.L.U.E., ISO ClaimSearch and XactAnalysis remain available when those integrations are turned on.
Contact ID Shown in Contact Search Suggestions (BC-25526)
Contact search suggestions now show each contact's ID below the name, address, phone and email, so contacts with the same name can be told apart in the dropdown. The selected contact still displays by name.
Simpler Legal Entity Types Editing in Contacts Settings (BC-25776)
On Settings > Modules > Contacts, Legal Entity Types are now managed in a searchable table with add, edit and delete actions instead of a raw JSON editor, and empty, duplicate or invalid names are refused. Deleting or renaming a type warns that contacts already using it will need another type the next time they are saved. The page layout has also been tidied into the standard three-column arrangement with aligned checkbox labels.
Redesigned Contact Assignments, Configuration, Security and Screening Tabs (BC-25972)
The Assignments, Configuration, Security and Screening tabs on a contact now use the redesigned contact page, at the same addresses as before. The new tabs are on by default and can be turned off per site to keep the classic tabs, and a Go to legacy page link opens the classic version when legacy pages are enabled.
Old Report List Page Retired (BC-24665)
The old report list page in Reports has been retired, along with the hidden View Old Report List button. Bookmarks and links to the old page now open the Reports Module, where every report from the old list is available, and users who prefer the classic list can switch to it with the Reports mode toggle.
Classic Notes Page in Reports Gains Filters and Alerts (BC-26698)
The classic Notes page in Reports now uses the same notes view as the Notes tab in the Reports workspace, showing a report's own notes when opened from that report and the general Reports notes otherwise. Both views gain Alerts, User generated and Oldest first filters, a date range with shortcuts, and note alerts with a date, time and email recipients. Links from report attachments still open the matching notes.
Package Priority Setting for Forms and Deliverables (BC-26677)
Forms attached to policy types and policy type items, and deliverable settings, can now store a package priority through the forms API endpoints, which will set where each prints relative to the Declaration in the Declaration Package: negative values before it and positive values after it. Values must be whole numbers from -99 to 99, excluding 0, and carry over when configuration is copied or promoted to another site. Existing forms keep no priority, and the current print order does not change.
Regulatory Receipts Stored for Outbound Disbursements (BC-25447)
For outbound disbursements, BriteCore now stores the regulatory receipt that Stripe requires for each payment as a PDF on the payee contact's attachments, starting while the payment is still processing. The receipt is replaced each time the payment's outcome changes, such as when it settles or fails, and BriteCore keeps its own copy rather than relying on a temporary receipt link.
Ready to Pay Review Step for Commission Payments (BC-25734)
On the Pending Commissions page, Process Payment(s) can now approve commissions without sending money immediately when the new ready-to-pay review setting is turned on. Approved payments appear in the Payments grid as Ready to pay, and users select them and choose Disburse to check the available balance against the selection total and send them. With the setting off, Process Payment(s) works as before, and Clear Commission Queue no longer clears a row that has a disbursement in progress.
Setting to Keep Installments by Capping the Cancel Date at Expiration (BC-26478)
A new Billing setting in Settings > Advanced Settings, cap-installment-cancel-date-at-expiration, keeps a mid-term installment whose non-pay cancel date would fall after the term expiration date. With the setting on, an installment due before expiration is billed with its cancel date set to the expiration date instead of being dropped and having its premium spread across the other invoices. The setting is off by default, so current billing is unchanged.
Configurable Fee Preview Messages at Payment Method Selection (BC-23394)
In Settings > Payments > Payment Fee, administrators can now customize the wording of the fee preview messages shown when a payer selects a payment method and in the checkout dialog, with placeholders such as the fee amount. The two preview styles are now labeled Fee added and Inclusive price, and sites without custom text keep today's messages.
Services Tab on Claims (BC-24324)
Claims now include a Services tab, placed after Accounting, where adjusters can request third-party claim services such as appraisals and track each service's activity, documents, carrier decisions, financials and workflow. The tab appears for users with Services permission when a claim service integration is installed or the claim already has services, and actions that affect reserves also require permission to change reserves.
Save a Payment Receipt Email to the Payer's Contact (BC-25529)
In the payment dialog, when staff type a receipt email address that differs from every address on the selected payer's contact, an unticked option now offers to add it to that contact's details. When ticked, the address is saved as a new Payment Receipt email, while the addresses used for billing, notices and payment processing stay unchanged. Payment Receipt also appears as an email type on the contact page, where it can be edited or removed like any other.
Loss History Values Display as Plain Text (BC-26030)
On the property page, the agent policy setup page, Claims History and the policy application PDF, text from loss history reports, such as loss causes, claim numbers, insured names and vendor messages, is now always displayed as plain text. Previously, a value containing markup could be interpreted as part of the page or document, which posed a security risk. The protection applies to reports already stored from A-PLUS and CLUE as well as future reports.
Legacy Policy Search Removed (BC-26155)
The Legacy Search entry has been removed from the Policies menu on both the admin and agent sites, along with the legacy policy list pages it opened. Policy Search is now the single policy search page, and links that pointed to the legacy list, including the Create Policy button on the Daily Cash Receipt page, now open Policy Search. The setting that switched between the old and new policy search has also been removed.
Quote Effective Date Checked Against the Selected Policy Type's Limits (BC-26602)
On both the new and legacy quote entry screens, the effective date was checked against the carrier-wide limits on how far in the past or future a policy can start, even when the selected policy type has its own limits. The screens now validate the date once a policy type is selected, against that policy type's limits and with the same message as before, so users are no longer blocked from dates the policy type allows or allowed to continue with dates it rejects. If the policy type's limits cannot be loaded, the carrier-wide limits are used.
Stronger Validation When Building Deliverable File Paths (BC-25682)
BriteCore strengthened how it builds the file locations for generated deliverables, such as policy and claim documents, receipts, and billing statements. The system now confirms that the policy, claim, or revision identifier is valid before creating any file path, adding a safeguard against malformed input. Deliverables continue to generate as before.
Legacy Underwriting Rules Engine Retired (BC-25658)
All sites now use the current underwriting rules engine, so the setting that switched between the current and legacy engines has been removed along with the legacy engine itself. Rating, renewals, and the underwriting rules API endpoint always run the current engine. No change in rule behavior is expected, since every site was already using the current engine.
Limit Triggers in Underwriting Rules Now Compare Limits as Numbers (BC-26405)
In underwriting rules, a limit trigger could fail when an item received its limit during the same rules run, for example an item added by an Add Line Item effect or a limit changed by a Set Limit effect. Range triggers stopped the rules run, which caused agent portal submissions to fail with "There was an application error", and single-value triggers never matched. Limits are now compared as numbers, so these rules fire as configured and agents can submit the affected quotes, and a Set Limit to an item's current value no longer adds an Underwriting Rules Triggered note.
Redesigned Administrative Alerts Page (BC-25663)
Settings > System Wide > Administrative Alerts has been rebuilt with a refreshed layout that keeps every existing alert setting, organized into Policies, Claims, Contacts, Lines, and Processing groups. Invalid email addresses are now flagged next to their field and must be corrected before saving, instead of being cleared, and hints show which alerts are also sent to the agent's Direct Application Activity To address.
Per-Alert Policy Type and State Overrides for Administrative Alerts (BC-26595)
On the Administrative Alerts page, each routable alert now shows its global value along with a table of its policy type and state overrides, including the recipients and when each was last updated. Users can add, edit, and remove overrides in a dialog that lets them choose a policy type or state and either send to specific addresses or choose Don't Send, and an Only alerts with overrides filter shows just the alerts that have them. A bar at the bottom of the page shows any unsaved changes, with Discard Changes and Save.
Additional Logging for ISO A-Plus Sends and Password Rotation (BC-26016)
BriteCore now records the SFTP user name and account number in its logs each time ISO A-Plus claim data is sent, along with the outcome for each ISO vendor record during the monthly password rotation. This lets BriteCore Support identify the affected accounts quickly without opening the ISO A-Plus vendor screen on each site. Passwords are never included in these logs.
Bug Fixes
Reserved Staff Usernames Blocked for Customer Users (BC-26802)
When users created or changed a login username in Contacts, on the Roles tab, in agent login settings or through the contacts API endpoints, BriteCore blocked only one of the username prefixes reserved for BriteCore staff, so a customer user could take a username that the system treated as a staff account with elevated access. BriteCore now rejects every reserved staff prefix, in any letter case, on every path that creates or changes a username, and shows the message "This username is not available." Existing accounts that keep their current username save as before.
SQL Plan Previews Work With the Read-Only Report Account (BC-27284)
On sites where reports run under the read-only reporting database account, the SQL query plan preview, the SQL Editor's cost check and the plan check on report save failed with a permissions error for every report. Query plans now run under safeguards that keep the read-only account's limits, and the preview returns only the plan's structure, so values hidden by the reporting views are never shown.
One Reinstatement Fee When a Renewal Term Is Also Reinstated (BC-26908)
When a non-pay cancellation canceled both the current term and an already-issued renewal term, reinstating the policy charged the full reinstatement fee on both terms, and autopay could collect the renewal term's fee the same day. One reinstatement now charges one reinstatement fee, on the term the user reinstated, and the renewal term is reinstated without a fee of its own.
Credit Reports Run After an Expired Report Number (BC-26920)
When ordering a credit report for a contact whose earlier report never completed, BriteCore reused that report's saved number, which the credit vendor no longer recognized, and every attempt failed with "Something was wrong with previous report number. Please try again." BriteCore now discards the expired number and orders a fresh report, so the credit report runs successfully.
Pages Stay Available When the E-Signature Service Fails (BC-27206)
When the e-signature service returned an error during its connection check, pages such as the dashboard and Policy Information could fail to load and show an internal server error. BriteCore now treats a failed check as e-signature being unavailable, so pages load normally, and rechecks the service at most once a minute.
Clear Error for Missing Carbone Templates in Configuration Promotion (BC-27062)
In Configuration Promotion, when an export included a Carbone deliverable whose template file was missing from the Carbone server, the export saved an error message in place of the template, and the import later failed with a misleading hash mismatch that suggested corruption. The export now fails on the source site with an error that names the deliverable and explains its template file was not found, and restore point exports skip that deliverable with a warning.
Quote a Change No Longer Creates Duplicate Revisions (BC-26746)
In the agent portal, sending a Quote a Change request twice in quick succession, for example by pressing Enter and then clicking, could create two open revisions with the same date. The New Policy Change window now sends one request at a time, and on sites that prevent multiple open revisions, a second overlapping request is refused with the existing uncommitted revision message.
Classic Builder No Longer Adds Redundant Quote Rated Notes (BC-26996)
Leaving the Classic Builder through the top navigation links re-rated the quote and wrote a new Quote Rated note every time, even when nothing had changed. The quote is still rated on every exit, but the Quote Rated note is now skipped when the quote already has one and the rating shows no changes. Policy Rated notes and notes from an explicit Rate and Save are unchanged.
Rate and Save No Longer Blocked by Placeholder Rating Selections (BC-27015)
After a recent update, Rate and Save could be refused with a "Dropdown needs a selection" message when a rating dropdown was blank or held the site's placeholder option, including hidden calculation items users cannot change and existing policies saved with placeholder answers. The change that introduced this check has been reverted, and Rate and Save once again accepts these values as it did before.
Revision Imports No Longer Hang During an AON Cat Score Outage (BC-27149)
On sites with AON Cat Scoring enabled, a slow or unavailable AON service could make a revision import wait indefinitely or fail. The Cat Score request now times out, and a failed request is logged and skipped for that property so the import continues.
Stateless API Quotes Accept Questions by Text and Contacts Without a Type (BC-26865)
With the unified quoting engine enabled, a stateless create_quote_extended API request rejected underwriting questions identified by their question text and named insureds, tenants, or additional interests sent without a type, and could rate differently from the same stateful request because Credit Tier underwriting rules did not apply. Stateless requests now resolve questions by their text, treat named contacts without a type as individuals, and apply Credit Tier rules before rating, matching stateful quotes.
Property Lookups Run Again After a Quote Is Rebuilt (BC-26868)
In the Quote Wizard, changing the effective date or policy type can rebuild a quote's coverages with default values, but saving Property Details afterward could skip the ISO LOCATION lookup because the address had not changed. The quote then kept the default Protection Class instead of the value returned by ISO. Property Details now reruns the automatic property lookups after a rebuild, while still skipping them when nothing has changed.
Rating Information County and ZIP Code Match the Property on API Quotes (BC-26961)
When a quote was created through the create_quote_extended API endpoint without a County or City value in Rating Information, BriteCore stored the first option in the list instead of the property's county, which could falsely trigger county-based Straight Through Processing (STP) rules. The county and ZIP code categories are now filled from the property's saved county and ZIP code, values the caller sends are kept, and a county that cannot be resolved is left blank instead of defaulting to the first option.
API Quotes Accept Coverages Sent Without a Sub-Line (BC-27081)
With the unified quoting engine enabled, a create_quote_extended API request that named a coverage without its sub-line, such as L. Personal Liability, was refused with an "Invalid Item" message even though the coverage exists on the policy type. BriteCore now finds the coverage by name, choosing consistently when the same name exists under more than one sub-line, matching how these requests were handled before.
Stateless API Quotes Include Default Sub-Line Coverages (BC-27099)
With the unified quoting engine enabled, a stateless create_quote_extended API request left out the mandatory coverages of default sub-lines that the same stateful request included, so the two returned different coverage lists. Stateless requests now add these default sub-lines and their mandatory coverages, matching stateful quotes.
Application Submission Suspensions No Longer Block Endorsements (BC-26735)
When a Suspend Application Submission suspension covered a property's area, agents could not submit an endorsement on an existing policy and saw the message "This application cannot currently be submitted due to a suspension.", even when no Suspend Endorsement suspension applied. Suspend Application Submission now applies only to new business, so endorsements continue through their normal checks while new applications in the area remain blocked. Carriers that want to stop endorsements in an area can continue to use Suspend Endorsement.
Entered Limits Lost After Adding Equipment Breakdown in the Quote Wizard (BC-26781)
In the Quote Wizard, on policy types with an underwriting rule that sets a default limit for Equipment Breakdown, limits and other values entered on items added alongside Equipment Breakdown were not saved before Calculate Rate. As a result, coverages such as Earthquake could rate at a $0 limit, or a discount could fail to apply, with no error shown. The Set Limit rule effect no longer conflicts with limits the Quote Wizard calculates itself, so entered values save and rate as expected.
Time Limit for SQL Report Sheet Queries (BC-27183)
For SQL reports, a report sheet's database query could keep running for days after its report run had failed or stopped, holding database resources and blocking maintenance. Each report sheet query now has an 11-hour execution limit, so a query can no longer outlive its report run indefinitely, while a tighter limit already set in the report's SQL still applies.
Importing Older SQL Editor Report Exports (BC-27202)
In the Reports module, importing a SQL Editor report exported before report parameters were included in exports failed with a message that the sheet's measures require parameters such as AsOfDate, or StartDate and EndDate. Import now adds the date parameters these sheets need when the file has none, so older exports import successfully and prompt for their dates when run. Files that already include parameters import as before.
Adding Primoris Payment Methods With Special Characters (BC-26769)
For carriers using Primoris for payments, adding a payment method failed with an error when any field contained a special character, such as an accented letter, a curly apostrophe in a name like O'Brien, or a non-breaking hyphen. BriteCore now converts these characters to their closest plain-text equivalents before sending the request, so payment methods are added successfully.
LexisNexis CLUE Loss History Pulls With Special Characters (BC-26770)
When requesting a LexisNexis CLUE loss history report, the pull failed with "Failed to retrieve loss history report details" if the order contained certain characters, such as an en dash in a street address or an invisible character at the end of a name. BriteCore now sends LexisNexis orders, including National Credit File orders, encoded as UTF-8, so these reports are retrieved successfully. Characters reach LexisNexis exactly as entered, and accented letters such as é and ñ are now sent correctly as well.
Pre-Authorized Payment Schedule Header Block Restored (BC-27179)
Some Pre-Authorized Payment Schedule documents produced through Dynamic Documents began printing with the Mail To, Named Insured(s) and Agency box hidden, the Date and Policy ID row partly cut off and other parts of the page shifted out of place. These documents now print with their complete header block and the expected layout.
Choosing an Agency on Quotes Without an Assigned Agency (BC-27470)
In the Quote Wizard, selecting an agency from Choose an Agency on a quote that had no agency assigned yet, such as a quote created through the API endpoint by an agent who works with several agencies, showed "An application error has occurred." The selected agency is now saved to the quote as expected.
E-Signature Can Be Turned Off for Endorsements in the Quote Wizard (BC-25256)
In the Quote Wizard, e-signature can now be turned on or off for each wizard flow, so agents processing an endorsement no longer see a DocuSign signature step when there is nothing to sign. E-signature is turned off on existing and newly created endorsement flows, while new business, renewals, and any choice a carrier has already made on a flow are unchanged. When e-signature is off, the Application step hides the e-signature section and the endorsement is submitted with a wet signature.
Reports No Longer Wait When Reusing a Prebuilt Measure (BC-27316)
When a report reused a measure that had already been built, BriteCore updated the measure's access record before running the report, which could make that report, and every other report reading the same measure, wait in a queue until earlier reads finished. BriteCore no longer updates this record when a measure is reused, so concurrent reports on the same measure start without waiting. Reused measures now expire on their original schedule and are rebuilt the next time they are needed.
Named Insured No Longer Added Twice as a Driver After Auto Data Prefill (BC-14873)
In the Auto Quote Wizard, when a quote had more than one named insured, Auto Data Prefill could add a named insured who was already a driver on the quote a second time, including when the prefill returned the name with a middle initial. BriteCore now matches prefill drivers to the drivers already on the quote by Social Security number and then by name, and fills in only missing details instead of creating a duplicate driver. The wizard also no longer saves a driver's date of birth one day early for users in time zones east of UTC.
Policies Can Return to Cancellation Pending After Reinstatement (BC-21435)
When a policy in Cancellation Pending, or Cancellation Pending, Non-Payment of Premium, was canceled and then reinstated, its earlier Cancellation Pending revision stayed on the term, so a later attempt to set the policy back to Cancellation Pending closed the popup without changing the status. Reinstatement now clears those earlier Cancellation Pending revisions, so the policy can be placed in Cancellation Pending again.
Quote Wizard Changes No Longer Lost When a Coverage Is Removed During a Save (BC-26098)
In the Quote Wizard, changing a coverage option such as Exclude Wind/Hail that also caused an underwriting rule to remove a related coverage could make the save fail silently, so the agent's edits were not stored even though the page still showed them. The wizard now waits for those coverage removals to finish before saving, and shows a message if a save fails instead of dropping the changes without notice.
Bulk Action Pickers Close and Clear Correctly in the Task Queue (BC-26177)
In the Underwriting Workbench task queue, the Change due date, Reassign and Link to policy pickers in the bulk action bar could stay open after clicking away and reopen with the previously picked value, and picking a date closed the Change due date picker before Set on N could be selected. These pickers now close and clear when users click away, and the Change due date picker stays open after a date is picked so the change can be applied.
BriteData Builder Keeps Group-By Aggregations on Column Names With Underscores (BC-26240)
In the BriteData report builder, re-saving a report reset any group-by aggregation, such as sum, count or max, on a column whose name contains an underscore back to first. The builder now keeps these aggregations as they were set when a report is loaded and saved again.
Underwriting Rules Apply Only to Their Configured Site on Rate and Save (BC-26368)
When an administrator selected Rate and Save in the BriteCore policy builder, underwriting rules set to BriteQuote Only also ran, which could, for example, set Comprehensive and Collision to No Coverage and zero out the premium. Rate and Save now runs only the rules for the site in use: BriteCore skips BriteQuote Only rules, and the agent portal skips BriteCore Only rules.
ACORD API Endpoint Now Uses the API Key Authentication Cache (BC-26438)
Requests to the ACORD API endpoint that supplied the API key in the XML body could not use the API key authentication cache, so every request repeated the full key check and logged warnings. These requests now use the cache, so a recognized key skips the full check and an invalid key is remembered for 60 seconds, reducing processing time and log noise.
Endorsement Summary Formatting on the Underwriter Review Page (BC-26780)
On the Underwriter Review page, the Endorsement Summary popup shown when submitting an endorsement appeared misaligned, with fields out of place and data hard to read. The popup's styling now loads on this page, so the summary displays correctly.
Negative Cost and Age Values Blocked in Damaged Property (BC-17825)
On a claim's Damaged Properties tab, the Add and Edit form accepted and saved negative values for Cost New ($) and Age (months). The form now refuses negative values with a message under the field, and the same check applies wherever these values are saved. Users can also now save the form after clearing one of these number fields, which previously returned a Not a valid number error.
Clearer Message When Agents File a Claim on Another Agency's Policy (BC-17982)
On the agent portal's File a Claim page, an agent who entered a policy written by another agency was told that an in-force policy could not be found, which pointed to a problem with the policy's status. Agents now see a message explaining that the policy is written by another agency and that the agency of record or the insured can report the loss to the carrier's claims department directly. Carriers can set the carrier name and a claims phone number or email shown in this message through two new claims settings.
One Alert Button per Note on the Claim Notes Tab (BC-18188)
On a claim's Notes tab, a note with an alert showed both the Add alert and Edit alert buttons, and both opened the same Edit Alert dialog. Each note now shows a single alert button: Add alert when the note has no alert and Edit alert once it has one, and deleting the alert brings Add alert back.
Claim Email Links Open the Correct Claim Page (BC-20447)
Links in claim emails could open the old claims page, including the View Claim link in the Agent Submitted Claim email and the single link sent to every recipient of New Claim Submitted and Claim Status Changed emails. The View Claim link now opens the current claim page, and status emails now give staff recipients such as adjusters and supervisors a link to the claim in BriteCore, while the agent of record keeps the agent portal link.
Claim Party Roles Shown as Readable Labels (BC-26467)
On the claim page, party roles appeared as internal names such as auto_body_repair in the Injuries tab's Contact Role(s) column and in the party selectors on the Accounting, Disputes, Damaged Properties and Vehicles tabs. These now show the same role labels as the Parties tab, including configured contact roles and roles that have since been deactivated.
Organization Name Shown When Editing a Claim Party (BC-26560)
In the Edit Party dialog on the claim page, an individual party whose organization was not itself a party on the claim showed a raw contact ID in the Organization field, and the Parties tab left that party's Organization line blank. Both now show the organization's name.
Edit Party Saves With Existing Phone Numbers (BC-26561)
In the Edit Party dialog on the claim page, a party whose stored phone number used the (XXX) XXX-XXXX format could not be saved until the number was retyped. The dialog now accepts every phone format the Contacts page can store, keeps stored numbers as they are, and formats newly typed numbers as (XXX) XXX-XXXX to match the Contacts page.
Legal Entity Type Field Follows Contact Settings in the Quote Wizard (BC-25246)
In the quote wizard, the Legal Entity Type field was offered to individual contacts even when the individual option under Settings > Modules > Contacts was turned off, and it now follows that setting as other contact screens do. Separately, an incorrectly formatted list of legal entity types in settings could leave contact forms with a broken, unusable dropdown, and those forms now load normally.
Search Filters Applied When the Primary Search Service Is Unavailable (BC-25524)
When BriteCore's primary search service was unavailable and searches fell back to a backup search, filters such as archived status, excluded contact roles, claim status and agency scope were ignored, returning unfiltered results. The backup search now applies these filters, so results stay correctly scoped while the primary search service is down.
Contact Search Respects Role Restrictions in Transfer Mortgagee Policies (BC-25525)
In Support Tools > Transfer Mortgagee Policies, the contact search offered contacts in roles that the user's permission level hides, such as Mortgagee contacts for restricted users. The search now applies the same role restrictions and filters as BriteCore's other contact searches.
Duplicate Contact Role Assignments Prevented (BC-25928)
When the same role was assigned to a contact by two requests at the same moment, the contact could end up holding the role twice, which skewed payments analytics. BriteCore now prevents duplicate role assignments and removes existing duplicates.
Driver Names Over 250 Characters Refused (BC-26669)
On some sites, creating a driver through the API endpoint with a full name longer than 250 characters reported success while the saved name was silently cut to 250 characters. Driver names over 250 characters are now refused, matching the limit that already applies when creating contacts.
Dates of Birth Fully Masked in Integration Logs (BC-26525)
In the system logs BriteCore keeps for integration calls, a date of birth written with dashes or slashes, such as 1980-01-01, was only partly masked, leaving the month and day readable. BriteCore now masks the entire date of birth value, and the rest of the logged data stays intact, including file identifiers that appear alongside it.
Integer Columns in SQL Editor Excel Exports Match the Preview (BC-25393)
In SQL Editor reports, a column formatted as Integer was cut down to a whole number before export, so a value such as 1,234.56 appeared as 1,234 in the Excel file while the preview showed 1,235. The export now keeps the full value and lets the Excel number format round it for display, so the workbook matches the preview, including negative values and totals rows.
Declaration Custom Deliverables Stop When a Policy Is Canceled (BC-16858)
When a policy was canceled before the next print or email run, BriteCore stopped its pending Declarations but not the custom deliverables set to Print with Initial Declarations or Print with Renewal Declarations, so an insured could receive a notice, such as a premium increase notice, for a canceled term. The Confirmation of Cancellation now sets those pending custom deliverables to do not print along with the Declarations.
Custom Deliverable Previews Download as PDF Files (BC-17941)
When users previewed a custom deliverable on a policy or claim, the downloaded file had no file extension and had to be renamed before it would open as a PDF. Previews now download with the deliverable's name followed by Preview.pdf, and each preview is built in its own file, so previews created at the same moment no longer interfere with each other.
Document Headers and Footers Print With the Correct Layout (BC-21791)
On some sites, Declarations and other documents whose templates load their headers and footers from BriteCore's page renderer printed with broken formatting, with content shifted to the right and cut off the page. BriteCore now builds those headers and footers within the document-generation process itself, so these documents, including page numbers in footers, print with the correct layout in every environment.
Lockbox Checks Matching a Renewal Apply Correctly (BC-26358)
During PNC lockbox imports, a check that exactly matched a policy's renewal invoice could fail to apply when a small balance remained on the current term, leaving a completed payment record that was never applied to the policy. A lockbox check now applies automatically to the renewal when it is for a single policy, equals the renewal's full-term balance, and the earlier terms' balances total less than the check; any other check goes to manual distribution.
Reinstatement No Longer Double-Counts Endorsement Adjustments (BC-26393)
When a reinstatement rebuilt a term's invoice, the new invoice already included an earlier same-term endorsement, but the separate Endorsement Adjustment stayed on the account, so the premium change was counted twice and the term could show a false credit or charge after payoff. Reinstatement now removes the outdated Endorsement Adjustment when it rebuilds the invoice, so Premium Billed matches Premium Written.
Transferred Return Premiums No Longer Retried for Export (BC-26480)
Return premiums that had already been transferred to a policy's balance stayed eligible for external export, so the export process kept picking them up and rejecting them. The return premium retrieval API endpoint now excludes transferred return premiums by default, and transferring a return premium clears its export flag, which stops the repeated attempts.
Pre-Authorized Payment Schedule Reflects the Down Payment (BC-26527)
On the Pre-Authorized Payment Schedule, when a down payment only partly covered the Initial Invoice and the first installment drew on the same day, the down payment was left out, so the first withdrawal and the Total Outstanding Balance were overstated. The schedule now calculates the first row from what remains on each invoice, so it shows the amount autopay will actually draw and a Total Outstanding Balance that matches the account.
Credit Scoring Through Integrations for Property Lines (BC-17181)
On the Contacts step of the quote wizard, credit scoring did not appear for property and other non-auto lines when the site used a connected credit report integration instead of a legacy credit vendor. Credit scoring now appears whenever the policy type has a credit report retrieval integration connected, submissions are checked the same way, and non-auto lines still fall back to a legacy vendor when no integration is connected.
Integration Settings Carry Forward to New Lines Effective Dates (BC-24450)
In Lines, adding a new effective date, or copying a single policy type to a new effective date or state, created policy type versions without their integration settings, so features such as ordering an inspection could disappear from affected policies without warning. Integration settings now carry forward with every copied policy type, and a copy that cannot carry them fails visibly instead of reporting success.
Duplicate Integration Policy Type Links Removed (BC-24616)
In integration settings, a policy type could end up linked to the same integration more than once, which could make that integration run twice for a single policy. BriteCore now removes existing duplicate links and prevents new ones, so each integration runs once per policy.
Simultaneous Edits on Auto Quotes No Longer Conflict (BC-24645)
On Auto quotes, adding, updating or removing a vehicle or watercraft at the same time as another action that resets the quote's rating, such as pulling a credit report or changing coverage, could cause a database conflict, and earlier changes made in that request could be lost. BriteCore now applies these changes in a consistent order, so simultaneous edits to the same quote complete without conflicting.
Anti-Lock Brakes Value Saved Correctly When Revisions Merge (BC-26362)
When changes were merged into a revision and the merge added a new vehicle, BriteCore filled the vehicle's anti-lock brakes value from its anti-theft device answer and left the anti-theft device value blank, so the vehicle could rate on the wrong value. Vehicles added by a merge now keep both values as entered and rate correctly. Vehicles already saved with the wrong value are not changed automatically.
Document Category Tree Keeps Open Folders When Re-Expanded (BC-24627)
In Edit Line Item > Documents, collapsing a folder in the Document Printing Depends on Selected Category Values tree also closed every folder inside it, so re-expanding it hid the selected values and folders had to be reopened one level at a time. Collapsing a folder now closes only that folder, and re-expanding it restores its sub-folders as they were.
Supplemental Question Labels With Quotation Marks Display and Save Correctly (BC-26571)
In Lines, on the Supplemental Questions tab of Edit Line Item, labels containing a double quotation mark appeared cut off with the rest of the text showing loose on the page, and saving the line item, even without edits, overwrote those labels with the shortened text. Labels, group names, popup text, disclaimer text and schedule headers now display in full and save unchanged. Labels already shortened by earlier saves are not restored automatically.
Faster Print Selection in the Nightly Mailing Process (BC-25983)
In the nightly process, selecting documents to print could take more than six hours on sites with a large document history after a check for superseded paper copies was added, putting the nightly job at risk of running out of time. BriteCore now applies that check only to documents that can actually print, restoring normal selection time while still skipping superseded copies.
Skipped Return Premiums No Longer Logged as Errors (BC-26262)
In the nightly process, each policy term that the return premium step correctly skipped was logged as an error with an empty message, adding noise that could hide real failures. Skipped terms are now logged as informational entries with a readable reason, and real failures are logged as errors with a clear message.
Admin Alert Email for Failed Nightly Policy Expirations (BC-26427)
When a nightly policy expiration failed, BriteCore rolled the policy back and added a Policy Expiration Failed note but sent no email, so the policy could remain Active past its expiration date unnoticed. A failed nightly expiration now also sends the same processing errors admin alert email that a failed nightly cancellation sends.
Payment Vendor Requests No Longer Stall the Nightly Process (BC-26726)
In the nightly process, requests to the eDatabase payment vendor had no time limit, so a stalled connection could hold up payment lookups and auto-pay processing and keep later steps from running. Lookups and other non-payment requests now time out and are logged, and requests reuse connections to reduce per-call overhead. Charge and refund requests still wait for the vendor's answer, so a completed payment is never recorded as failed.
Agents Blocked From Working on Another Agency's Quote (BC-25569)
In the agent portal, an agent who opened the link to a quote belonging to a different agency, for example after switching logins or impersonations, could view and work on that quote, including answering questions, rating, setting up billing and submitting it. The agent portal now refuses those quote pages with the standard "You do not have permission to view the requested module or page." message, and saving application answers or billing setup for, or submitting, such a quote is also refused.
Rating Information Updates Skip Items With a Missing ID (BC-9795)
When a request to the update_rating_information API endpoint included an item with a missing, empty, or non-text ID, the entire request failed with a server error and none of its valid items were saved. BriteCore now skips that item with a "No item found for id" message and saves the rest of the request.
Nightly Expiration Skips Terms Whose Renewal Is Already in Force (BC-11037)
When a term was set to Non-Renewal but its renewal term had already been issued and was in force, the nightly process still expired the term and could add duplicate Expired revisions next to the active renewal. Nightly expiration now leaves such a term unexpired, adds a note to the policy and emails the carrier's processing errors recipients so a user can decide how to proceed.
Pre-Authorized Payment Schedule Deliverables No Longer Fail Without a Billing Contact (BC-16063)
When the setting to show the bill-to contact on the Pre-Authorized Payment Schedule was on, a policy term with no recurring billing contact caused that deliverable to fail. These deliverables are now created without the billing contact recipient instead of failing.
Agents Can No Longer Delete Issued Policies From Policy Search (BC-16574)
On the Policy Search page, the trash icon let an agent permanently delete a policy that had already been issued, for example while working on an unsubmitted policy change. Only quotes with no issued revisions can now be permanently deleted, and staff remove dialogs explain that a policy with issued history will be archived rather than permanently deleted.
Back and Forward Buttons Navigate Attachments Folders (BC-21586)
On the Attachments page, the browser or mouse Back button left Attachments entirely instead of returning to the previous folder. Back and Forward now move between the folders the user visited, as they did in the previous Attachments experience.
Faster Creation of Quotes With Many Vehicles or Properties (BC-22539)
When creating a quote with many vehicles or properties, BriteCore wrote a separate history note for each default coverage it added, which slowed quote creation under heavy load. These notes are now saved together in a single step, with the same content as before.
Single-Property Rules Run No Longer Clears a Blocked Quote (BC-24380)
When underwriting rules ran for a single property, the run could clear a quote's Ineligible status set by a Block Quote rule on a different property, letting the agent continue in the quote wizard past a blocking condition. Only a run that evaluates every property on the quote can now clear that status, while a single-property run can still set it.
AON Cat Scoring Respects the Vendor Switch (BC-25623)
In Settings > Vendors, switching off the AON Cat Scoring vendor did not stop BriteCore from requesting catastrophe scores from AON when a new revision was created or a score was requested directly. A disabled vendor now makes no AON calls, and a direct score request returns the message "AON Cat Scoring vendor is not enabled."
Valid ZIP Codes Accepted in Suspension Rules and Multi-State Property Lookups (BC-25751)
When validating a ZIP code on a BriteQuote suspension, or looking up a property's ZIP code on a multi-state setup, BriteCore could reject or only partly resolve a valid US ZIP code that its geocoding service returned without a full location. These lookups now use the same ZIP-specific retry as other ZIP lookups, so valid ZIP codes are accepted, while foreign and malformed ZIP codes are still filtered out.
Policy Note No Longer Reports Success When a File Backup Fails (BC-25831)
When a file was attached to a policy and its backup to cloud storage failed, BriteCore still wrote a policy note saying the file was successfully attached. The note now reflects the backup failure, so users are no longer told an attachment is safely stored when it is not. Notes for successful attachments are unchanged.
Adding Items No Longer Fails on Lines With Circular Rate Chain Dependencies (BC-26072)
When two or more items in a policy type's Lines configuration depended on each other through their rate chains, adding an item, importing a revision, or renewing a policy on that line could fail with an error. BriteCore now detects the loop and stops following it, so these actions complete normally.
Policy Wizard Locations Load When a Munich Re Lookup Fails (BC-26092)
On sites with the Munich Re vendor enabled but its account not registered, or during a Munich Re outage, the Risks step of the policy wizard could list no locations at all because a single failed eligibility lookup failed the whole list. A failed Munich Re lookup now returns a message for that property only, and the rest of the locations load normally.
Fully Earned Fees No Longer Refunded on Mid-Term Cancellation After a Property Is Removed (BC-26319)
When a property was removed from a policy mid-term, its fully earned fee, such as a Multi-Location Fee, correctly stayed on the policy, but a later mid-term cancellation refunded it anyway. BriteCore now keeps fees configured as fully earned on a mid-term cancellation, even when the property they belong to has been removed, so they are no longer refunded.
Expired Policy Reinstatement No Longer Reports a False Failure (BC-26325)
When reinstating an expired policy, a failure while writing the policy change log after the reinstatement was saved caused BriteCore to report the reinstatement as failed, even though the policy had been reinstated. The change log failure is now logged and the reinstatement is reported as successful, avoiding a misleading error and an accidental second reinstatement.
Mortgagee Transfer No Longer Leaves Open Revisions That Block Renewals (BC-26396)
When the mortgagee transfer tool moved policies to a new mortgagee and the outgoing mortgagee was also the policy's billing contact, the transfer revision could not be committed and was left open, which then blocked the policy from renewing. The transfer now moves the outgoing mortgagee's billing along with it, and each policy is either transferred completely or left unchanged with no open revision.
Mortgagee Transfer Job Continues When a Policy Has No Matching Mortgagee (BC-26397)
When the mortgagee transfer tool reached a policy revision that did not list the outgoing mortgagee, the whole job stopped with an error, leaving policies it had already processed without the record needed to revert the transfer. That policy is now reported as not transferred, and the job continues with the remaining policies.
Rule-Added Coverages No Longer Dropped in the Classic Builder (BC-26401)
In the Classic Builder, moving to Rating could start an automatic Rate and Save while underwriting rules were still adding coverages, and a coverage added by a rule, such as Coverage E or Coverage F, could be silently lost. Rate and Save now waits until the underwriting rules finish, so rule-added coverages are kept and included in the premium.
Policy Fee Follows the Primary Property (BC-26429)
When the primary property on a multi-property policy was removed or changed, a fee tied to the primary property, such as a Policy Fee, could be dropped, applied to every property, or charged twice. BriteCore now promotes a remaining property to primary in a consistent order and retires the fully earned fee left on the previous primary property, so the policy carries the fee exactly once.
Endorsements Can No Longer Be Moved to the Term Expiration Date (BC-26440)
Editing an open endorsement's revision date allowed it to be moved to the policy term's expiration date, which is the start of the renewal term, while the endorsement stayed on the expiring term. Once committed, it caused later back-dated endorsements on that term to fail with an application error. BriteCore now refuses that date with a message explaining that the change belongs on the renewal term.
Quote Wizard No Longer Saves a Liability-Only Premium (BC-26453)
In the Quote Wizard, if rating information was saved while a quote was being rated, a property's just-calculated premium could be reset to zero, and the quote was saved and shown with only its policy-wide liability premium and no error. BriteCore now re-rates a property whose premium was reset during rating, so the quote total always includes the property premium.
ZIP Code Lookups Handle Extra Spaces and ZIP+4 Codes (BC-26528)
When a ZIP code was looked up on its own, a value with leading or trailing spaces was skipped, and a nine-digit ZIP+4 code was handled differently depending on whether it included a dash. ZIP codes are now normalized before the lookup, so these values resolve like any other valid ZIP code.
Underwriting Rules With Limit Triggers No Longer Fail After Adding a Coverage (BC-26603)
When an underwriting rule added a coverage with a user-chosen limit and another rule then checked that coverage's limit in the same rules run, BriteCore showed an "Error while applying Rule" message and the new revision was not created. Limit triggers now compare limits correctly, including values with commas, so range triggers apply as configured and exact-value triggers match as expected.
Clearer Result When an Expired Reinstatement's Follow-Up Records Fail to Save (BC-26682)
When reinstating an expired policy, a database error while saving the policy change log after the reinstatement had committed produced a generic application error, which could lead users to retry and reinstate the policy twice. BriteCore now tells the user that the reinstatement was completed but its follow-up records were not saved, and the system stays ready for the next action. Rescinding a pending underwriting cancellation is reported as completed in the same situation, and its policy change log entry is now recorded correctly.
Submission Emails Go to the Person Who Submitted (BC-15089)
Endorsement and application confirmation emails were sent to the address last saved on the policy, often the agent who submitted the original application or the agency inbox, rather than the person who submitted the change. BriteCore now records who made each agent submission, so confirmation emails go to that person and the administrative alert's Submitted by line names them correctly.
County Changes Now Require a Re-Rate in the Classic Builder (BC-17949)
In the Classic Builder and the agent quote flow, changing a property's county did not mark the quote for re-rating, and a rating dropdown whose selected option was no longer offered after the change could be saved blank and bound. A county change now requires the quote to be re-rated, and Rate and Save refuses a rating dropdown that lost its selection. Items hidden from the Builder and values unchanged since the last save are not checked, so existing placeholder answers and hidden calculation items do not block rating.
Quote Wizard Shows Coverages Added by Property Lookups Without a Refresh (BC-22648)
In the Quote Wizard, saving Property Details runs property lookup integrations that can also run underwriting rules and add or remove coverages, but the wizard kept its old coverage list. Coverages such as the New Construction Wind Loss Mitigation Credit were missing on the Rating step until the page was refreshed, and the wizard could show a "does not allow multiples" error when trying to add them again. The wizard now reloads the property's coverages when a lookup changes them, and a lookup no longer fails when a limit-based rule checks a coverage that has no limit yet.
Classic Builder Applies Rule-Added Coverages on the First Rate (BC-25800)
In the Classic Builder, Rate and Save ran the quoting rules only for Auto and Umbrella policy types, so on other lines a coverage that a rule should add, such as Coverage F (Medical Payments to Others), could be missing from the first rate and the Quote Summary. On sites using the new rules engine, Rate and Save now runs the quoting rules for every policy type, so the first premium includes rule-added coverages.
Property Rail Reopens Saved Properties in the Quote Wizard (BC-26284)
On a multi-property quote in the Quote Wizard, clicking a property in the property rail after saving it could show "Could not open Property 1. Please try again." and leave the property inaccessible. The property rail now reopens saved properties as expected. The wizard also stays on the current property when an ISO protection class result arrives, shows the stored protection class without requiring Get Protection Class, and shows addresses added from the Locations grid without a reload.
Closed-County Check Applies When the County Is Not Sent (BC-26398)
With the unified quoting engine enabled, a create_quote_extended API request that left out the property's county could be quoted even when the geocoded county was closed to new business by a Suspend Quoting rule. The closed-county check now runs on the county filled in from geocoding, so these requests are refused with the same closed-county message as other requests.
Quotes No Longer Locked for Hours After an Interrupted Rate (BC-26661)
When a rate running through the unified quoting engine was interrupted, for example by a server restart, the quote stayed locked and every new rate attempt was refused with "A rate for this quote is already in progress" for up to 12 hours. The lock is now held only while a rate is actually running and expires within 10 minutes of an interruption, so users can rate the quote again shortly after.
API Quotes Require an Agency or Agent (BC-27330)
With the unified quoting engine enabled, a create_quote_extended API request that named no agency or agent created a quote linked to no agency, so no agency or agent could see it. These requests are now refused with "Agency ID or Agency Number is required", as they were before the unified engine.
API Quotes Enforce Effective Date Limits (BC-27331)
With the unified quoting engine enabled, a stateful create_quote_extended API request could create a quote with an effective date outside the site's past or future effective date limits. These requests are now refused with the same "Policy effective date cannot be more than N day(s)" message as before, and Administrator users remain exempt.
Vehicles Could Not Be Deleted From Some New-Business Quotes (BC-27359)
On the Vehicles step of a new-business quote, deleting a vehicle failed with a "Failed to delete vehicle" error when the quote had been created through BriteCore's unified quote engine, for example an umbrella quote started from the estimated quote in the policy wizard sidebar or a quote received through the ACORD API endpoint. These quotes saved their properties and vehicles without location numbers, so vehicles also appeared without a number. BriteCore now numbers every property, vehicle, and watercraft when such a quote is created, and vehicles can be deleted from these quotes again.
Shared Deductible Amounts Overwritten Across Locations in the Quote Wizard (BC-26636)
In the Quote Wizard, opening Complete Policy Coverages & Items, Application Questions, or a location's rating page again applied the Shared Deductibles amount last picked on any location to every location on the quote, with no action by the agent. This silently changed each location's saved deductible and caused the quote to rate on the wrong amount. Each location now keeps its own shared deductible, which changes only when the agent picks a new amount while editing that location.
Report Data Quality Snapshots Save Reliably When Runs Overlap (BC-25530)
BriteCore resolved two issues in the background process that saves the report snapshots used for report data quality checks. When two snapshot runs for the same report and parameters overlapped, one run failed instead of skipping rows already saved, and a problem with one sheet stopped the rest of the report's sheets from being saved. Repeated runs now skip existing snapshots, and each sheet is saved independently, so one failed sheet no longer prevents the others from being recorded.
Doubled Totals in Premium Written Earned Unearned Report Snapshots (BC-25531)
In report snapshots for Premium Written Earned Unearned, the Totals By Policy Type and Totals By Agent|Agency sheets could record exactly twice the Policy Schedule values, because a totals row returned by the sheet's query was saved as if it were a regular data row. BriteCore now recognizes a totals row added at the end of a sheet's query and leaves it out when saving snapshots, so the totals sheets match the detail they summarize.
Report Parameters Mentioned in SQL Comments No Longer Cause Run Failures (BC-26551)
In SQL Runner reports, a parameter token such as <<$Name>> written inside a SQL comment was checked as if it were part of the live query, so the report refused any non-numeric value, including a blank filter, and failed on every run. BriteCore now leaves parameter tokens inside SQL comments untouched, so reports that document their parameters in comments run as expected.
Primary-Only Underwriting Rules Applied to Every Property (BC-23962)
Underwriting rules scoped to the primary property fired on every property of a quote or policy whenever no property was marked as primary, which is common on some lines. This could produce validation errors or other rule effects on properties the rule was not meant for. When no property is primary, rules scoped to the primary property no longer fire, matching how the policy builder and Quote Wizard already behaved, while rules scoped to non-primary properties and unscoped rules continue to apply.
Checked Balances Cleared When the Funding Source List Refreshes (BC-25272)
On Settings > Accounts & Connections, a balance checked with Check balance while the source list was reloading, such as after reordering sources, could remain on the refreshed list even though it was read against the previous one. Checked balances are now cleared whenever the refreshed source list appears, so every balance shown matches the current list.
Photo Labels Now Display as Plain Text (BC-27073)
In property and claim photo galleries, photo labels are now always displayed as plain text. Previously, markup entered in a label could be run by the browser of any staff user who opened the gallery, creating a security vulnerability. Labels now appear exactly as typed.
E-Signature Agent Signer Now Matches the Agent Who Signs (BC-26554)
When a quote was submitted for e-signature by an agent other than the one who created it, BriteCore registered the quote creator as the agent signer, so the signed application showed the submitting agent's signature while Signature Status and DocuSign showed the creator's name or email. The agent who submits the quote or uses Finish Pending Signature is now registered as the agent signer, so the signed application, Signature Status, and DocuSign record agree. If the signer cannot be set, Finish Pending Signature now shows the reason.