New Features and Enhancements
Claim Payments Require a Payee Address (BC-21819)
Adding a payment on the Exposures tab of a claim now requires that the claim payee has an address, enforced both in the payment dialog and on the server. Payment options can also be configured directly in Settings under Claims instead of through advanced settings.
Premium Records Rebuilt as a Live Premium History (BC-22798)
The Premium Records view on the Accounts Receivable page is rebuilt as an event-based premium history per policy term, opened as an in-page modal like the Installment Schedule. The view now reads live data, resolving an issue where earned premium was not displaying, and no longer requires navigating to a separate page.
PGP Encryption for SFTP Report Exports (BC-22894)
Report exports delivered by SFTP can now be encrypted with PGP before transmission. Carriers enable encryption on an SFTP export configuration and provide the recipient's public key, which BriteCore validates; the recipient's private key is never requested or stored. When encryption is enabled, only the encrypted file is sent, and if encryption fails the report is not transmitted unencrypted. This allows report deliveries to meet recipient security requirements without any manual encryption step.
Speed Limit and Actual Speed Captured From Motor Vehicle Reports (BC-23040)
Motor vehicle report violations now capture the posted speed limit and the driver's actual speed, in addition to the existing excess speed value. These fields are available to the rating engine for custom evaluations, supporting state point calculations that key off exact speeds.
Commission Adjustments Without a Source Transaction (BC-23072)
The commission adjustment API endpoint now accepts adjustments that are not tied to a source accounting transaction. Callers can supply the agency, agent, amount, statement period, and an optional reason code directly, which supports chargebacks, corrections, and bonuses that are not tied to an existing commission row.
Non-Policy Adjustments on Commission Statement PDFs (BC-23074)
Commission statement PDFs now include a dedicated section for adjustments that are not tied to a specific policy, such as chargebacks, corrections, and bonuses. The entries are grouped by reason code so agencies can see every adjustment on the statement they already receive.
Administrator Queue View With Task Lifecycle Buckets (BC-23218)
The underwriting task queue now has an administrator view with Active, On Hold, and Archived buckets. The bucket selector is visible to the administrator role only, giving managers a lifecycle view of the queue while underwriters keep their focused view.
Bulk Task Selection and Updates in the Task Queue (BC-23219)
The underwriting task queue now supports bulk operations. Users can select every task under a policy with one checkbox in By Policy mode, and can mark tasks for review or archive them in bulk. Each affected task still emits its own event so downstream tracking stays accurate.
Task Queue Export Downloads the Current View (BC-23220)
The task queue's Export action now downloads a CSV of exactly what the user is viewing. The file reflects the active tab, status chips, search term, filters, and sort order, and includes every matching task rather than only the current page.
Multi-Driver Vehicle Assignment (BC-23595)
The fixed two-driver model on vehicles is replaced with support for one primary driver plus any number of additional drivers, and zero-driver vehicles are now valid for policy types that allow them. Driver position, experience, and count are exposed to the rate chain and rules so carriers can apply position-based rating factors.
Suspensions Handle Policy Types With Effective-Date Gaps (BC-23673)
When setting up a Suspension, the list of offered policy types now respects the selected start date for policy types whose definitions have gaps between effective-date versions. Enforcement uses the same logic, so the correct policies are suspended.
SQL Report Runs Resume From Completed Sheets on Retry (BC-23937)
Multi-sheet SQL reports are now more reliable on retry. Previously, a transient failure on a later sheet restarted the entire report from the first sheet, repeating hours of finished work and sometimes exceeding the run time limit. Completed sheets are now checkpointed, so a retry resumes with only the sheets that have not finished.
Company Letterhead Data for Custom Deliverables (BC-24279)
Custom document templates can now pull a shared company letterhead block from the revision data. Templates draw the carrier's name, letterhead lines, address, phone, and email from one consistent source, along with a revision-scoped list of Notice deliverables.
Bug Fixes
Quote Wizard Rating for Lines Without Top-Level Exposure Items (BC-21937)
In the quote wizard, lines whose primary exposure items all live under sub-lines showed Premium Not Applicable on the Risks step and offered no Rate Location option. Locations on these lines can now be rated in the wizard.
Declaration Generation Reliability During Straight-Through Processing (BC-22828)
Declaration generation during Straight-Through Processing (STP) issuance was hardened. Database contention during inline document generation could previously leave a zero-size document. The generation step now retries safely and rolls back cleanly, preventing empty Declarations.
Shared Deductible Updates Apply to All Related Deductibles (BC-23550)
In the quote wizard, updating the main shared deductible did not update the other related deductibles, and those deductibles could not be changed manually either. Related deductibles now stay in sync when the shared deductible changes.
Faster Agency Resolution for Motor Vehicle Report Requests (BC-23642)
The driving-records prefill integration resolved a quote's agency information with a redundant and expensive contact lookup that ran on every quote. That lookup was removed, and test coverage was added around this path to protect the behavior going forward.
Address Suggestions Without Entering a ZIP Code First (BC-23764)
The Smarty address pre-fill behavior is now consistent across quote flows. On the Homeowners agent flow, address suggestions previously appeared only after the ZIP code was entered, while the Auto flow suggested addresses immediately. Suggestions now appear consistently without requiring the ZIP code first.
Faster Policy List Loading and Agency Saves (BC-23793)
Two policy operations were slow: the policy list page could take up to 48 seconds to load its filter options, and saving an agency or contact on a policy could take up to 12 seconds. Both were reworked to avoid the underlying expensive queries, so the policy list and agency assignment now respond in seconds.
Duplicate Address Dialogs in the Multi-Property Quote Wizard (BC-23824)
In the Multi-Property Quote Wizard, the Edit button on a property's address gave no loading feedback while the property details loaded, so any extra clicks during that wait each opened another stacked dialog. The button now shows when it is working and opens a single dialog per click.
Repeated Field-Review Warning in the Multi-Property Quote Wizard (BC-23825)
On the Questions page of the Multi-Property Quote Wizard, the prompt asking users to double-check a field appeared once for every property on the quote. It now appears a single time, removing the duplicate messages.
Billing Details Withheld for Non-Payable Policies (BC-23940)
Privacy controls on policyholder-facing billing endpoints were strengthened. Policies that are not currently payable no longer return account balance, payoff amount, or billing schedule details through the public payment gateway.
Declaration Generation for Additional Insured Items With Multiple Supplemental Groups (BC-24041)
Declaration generation failed for policies containing Additional Insured line items with three or more supplemental question groups. The document build aborted with an internal error and left an empty Declaration folder on the policy. These Declarations now render correctly.
Excel Report Runs No Longer Fail on Legacy Sheet Names (BC-24042)
Reports saved before sheet-name validation was introduced could fail every Excel run because a stored sheet name was too long or contained characters Excel does not allow. Invalid legacy sheet names are now sanitized at run time so these reports generate successfully.
Commission Adjustment Retries No Longer Create Duplicates (BC-24044)
A commission adjustment could report failure to the caller after the adjustment row had already been saved, because a later step such as PDF statement generation failed, and a retry then silently created a duplicate adjustment. The save sequence was corrected so the reported result matches what was actually recorded.
Catastrophe Assignment With Automatic Loss Cause Fill (BC-24046)
Assigning a catastrophe to a claim could fail when the automatic loss cause fill counted duplicate loss causes toward the maximum allowed per claim, and a misleading success note was written even though the catastrophe was never saved. Duplicates are now removed before the limit check, a true overflow returns a clear error, and the update note is written only after the save succeeds.
Return Premium Export Endpoint Enforces Export Guards (BC-24101)
The return premium export API endpoint bypassed the safeguards enforced elsewhere in the export path. It now checks whether a return premium was already exported and honors voided status, preventing repeat exports and duplicate check numbers.
Return Premium Generation Covers Every Credit-Bearing Term (BC-24103)
When a policy had multiple terms carrying credit balances, the automated return premium process could consider only one arbitrary term per policy on each run. Every eligible term is now handled, so return premiums are generated without waiting for additional runs.
Return Premium Reconciliation Detects Missing Markers (BC-24104)
The return premium reconciliation check silently skipped policies with no export markers at all, so a completely missing accounting marker was reported as an all-clear instead of a discrepancy. The check now detects these policies.
Concurrent Return Premium Runs No Longer Duplicate Credits (BC-24105)
Two overlapping automated runs could each generate a return premium for the same credit balance, producing duplicates. Return premium creation is now protected against concurrent runs.
Return Premium Batch Authorization Is Now All-or-Nothing (BC-24108)
Authorizing a batch of return premiums could partially apply and then report total failure, leaving some records authorized while the caller was told nothing happened. Authorization is now all-or-nothing: either every eligible record in the batch is applied or none are.
Umbrella Policy Data Sync on First-Revision Imports (BC-24114)
The sync that copies underlying policy data for umbrella policies silently failed when a revision had no prior revision, which is common during bulk revision imports. The sync now runs correctly for first revisions.
Excess Speed Preserved When Reusing a Valid Motor Vehicle Report (BC-24122)
Copying a driver's still-valid motor vehicle report onto a new quote silently dropped the excess speed value from each violation. The copied violations now carry excess speed, so rating factors that depend on it evaluate correctly.
Export Date Stamped on Return Premium Exports (BC-24126)
The return premium export marked records as exported and wrote the accounting marker but never stamped the export date. The date is now recorded, keeping export tracking consistent.
First Category in a Rate Chain Step Now Rates Correctly (BC-24131)
The first category in a rate-chain categories step silently lost its line item reference, causing any quote for that policy type to fail rating with an unclear error. The reference is now preserved regardless of the category's position.
Generate Last Month's Report Button Reliability (BC-24140)
Two issues affected the Generate Last Month's Report button in the Mutual Boiler Reinsurance section of Policies and Processing: a stale background job record could block the button permanently, and no confirmation appeared when a report was queued. The stale guard is now cleared correctly, and users see a message confirming the report is running in the background with an email to follow.
Date Functions in Advanced Rule Triggers (BC-24152)
Advanced trigger and Advanced effect code that called common date functions failed with an internal error that aborted the entire rules run for the quote or revision. Rules using these date functions now evaluate correctly.
All Violation Fields Preserved When Reusing a Motor Vehicle Report (BC-24158)
Following the earlier excess speed fix, the remaining nine violation fields that were silently dropped when a driver's still-valid motor vehicle report was copied onto a new quote have been corrected. Copied violations now carry the complete set of fields returned by the original report.
Empty Sidebar Row Removed From the Mobile Menu (BC-24159)
The desktop sub-navigation toggle appeared in the mobile slide-out sidebar as a blank row that did nothing. The control is now hidden on small screens, where the mobile sub-navigation already provides its own toggle.
Sub-Line Underwriting Rule Triggers Evaluate All Conditions (BC-24212)
Underwriting rules with triggers on a sub-line silently dropped a failing trigger condition instead of blocking the rule, effectively turning AND conditions into OR conditions, so a rule could fire even when one of its conditions was not met. All trigger conditions are now enforced.
ImageRight Uploads Continue Past Rejected Files (BC-24255)
A single file rejected by the ImageRight vendor aborted the rest of the nightly upload, and the same permanent error was retried every night. A rejected file is now recorded and skipped so the remaining files upload, and permanent rejections are no longer endlessly retried.
Orbipay Upload Failures Now Raise an Alert (BC-24256)
A failure in the nightly Orbipay file upload was silently swallowed, allowing the export to fail repeatedly without any notification. Upload failures now raise an alert so they can be investigated promptly.
Return Premium Records Returned Newest First (BC-24277)
The policy export API endpoint returned a policy's return premium records in an arbitrary order, so integrations reading the first record could pick up an old refund amount. The records are now returned newest first, giving integrators a reliable ordering.
Installment Statement Print Dates After Reinstatement With a Fee (BC-24287)
Reinstating a policy with a reinstatement fee stamped every future installment billing statement with the reinstatement date instead of each statement's scheduled print date, and could create duplicates. Future installment statements now keep their scheduled dates.
Editing Additional Interests Created Before the Unified Save Path (BC-24288)
Editing and saving an existing policy-level Additional Interest was blocked by an address-type validation error on the linked contact, even though the contact showed no missing data. Additional Interests created before the unified save path can now be edited and saved normally.
Refunds Reflected When Re-Rating a Term (BC-24303)
A refund issued through the Refund Support Tool was invisible when the term was later re-rated, leaving future installments under-billed by exactly the refunded amount with no invoice behind it. The refunded amount is now billed back so installments cover the full balance.
Payment Amount Precision for Authorize.net Transactions (BC-24311)
Payments submitted with an existing payment method could be sent to Authorize.net with excessive decimal precision, causing the processor to reject the transaction. Payment amounts are now rounded to standard currency precision before being sent.
Commission Adjustment Performance at Scale (BC-24333)
Creating a commission adjustment recalculated commissions for the entire book of business, which could exhaust memory and fail on sites with large books. Adjustments now calculate only what they need, so they complete reliably regardless of book size.
Agency-Scoped Commission Statement Runs Stay Scoped (BC-24334)
A commission statement run scoped to a single agency also produced statements for unrelated agencies, because the current and future month projection calculated across the whole book of business instead of the requested agency. Scoped runs now generate statements only for that agency.
Erroneous Policy Notes From Underwriting Rules (BC-24356)
Underwriting rules wrote notes to a policy stating that an agent added or deleted coverages when the agent had only navigated between tabs. These system-generated notes no longer appear when no actual change was made.
Billing State History Link Styling (BC-24360)
The Billing State History link in the policy header now matches the Show Revision History link, using the same typography, color, hover, and focus treatment. Its permissions and behavior are unchanged.
Faster Response for Missing Policy Attachments (BC-24381)
Requesting a policy attachment whose stored file was missing took over 30 seconds to return a not-found response because the lookup retried with exponential backoff. Missing files now fail fast, so the interface responds promptly.