insurancerating
‹0.8.2
- 0.8.21 Sep 2026, current
- 0.8.130 Jul 2026
- 0.8.02 Jun 2026
- 0.7.59 Oct 2024
- 0.7.420 May 2024
- 0.7.39 May 2024
- 0.7.220 Dec 2022
- 0.7.16 Sep 2022
- 0.7.08 Jul 2022
- 0.6.911 Dec 2021
- 0.6.810 Nov 2021
- 0.6.728 Jul 2021
- 0.6.619 May 2021
- 0.6.522 Mar 2021
- 0.6.412 Jan 2021
- 0.6.328 Oct 2020
- 0.6.28 Jun 2020
- 0.6.129 Apr 2020
- 0.6.011 Apr 2020
- 0.5.231 Mar 2020
- 0.5.129 Mar 2020
- 0.5.012 Mar 2020
- 0.4.31 Nov 2019
- 0.4.231 May 2019
- 0.4.110 Apr 2019
- 0.4.07 Feb 2019
Actuarial Tools for Insurance Pricing Models
Needs a package facing archival
DHARMa in Imports Fix due 14 Nov 2026 17 days left
- CRAN checks, method
Method
Checks and health
CRAN runs every current package through
R CMD checkon a set of machines and publishes a result for each one. The health shown on a package page comes from these results alone.- Problems
- Notes alone never count against a package, but a warning, an error or a failure on any platform is a problem. Open CRAN deadlines are a fact of their own, shown as a clock after the mark, so the mark always says what the checks found.
- Checks only
- Health reflects CRAN's check results and nothing else. Even a package with no tests, no coverage or no recent release can have every platform OK.
- Once a day
- Results are collected once a day from files CRAN publishes. Each platform is one machine set-up, named by its R version, operating system, architecture and compiler, such as r-devel-linux-x86_64-fedora-clang.
- Platforms counted
- The 13 in 3 of 13 is the number of platform rows CRAN published for that package on the day of collection. The set of machines changes over time, so the number is not fixed, and a package missing from a platform counts as neither passing nor failing there.
- All OK13 platforms
- CRAN 30-day downloads, method
- 685+2.2% up on the 30 days before, the better direction
- Dependent packages, method
Method
Reverse dependencies
Dependent packages are other packages that list this one under
Depends,ImportsorLinkingToin theirDESCRIPTIONfile. Those fields list the packages a package needs to install, so dependents break if this one is archived or broken.- As declared
- The counts follow the declarations as written, not whether a package uses the other one when it runs.
- Suggests apart
- Packages that list this one only under
Suggestsinstall and run without it, and use it for tests, examples or an optional feature. They are counted as Suggested by, never among the dependents, and a package that also lists it under one of the three fields is a dependent and is not counted again. - Zero
- Zero dependents means no current CRAN package declares a need for this one, though some may suggest it. On 28 Oct 2026, 19,572 of the 25,583 current CRAN packages had no dependent package.
- 0none suggest it
- Test coverage, method
Method
Test coverage
Test coverage is measured by downloading each CRAN package's current source file, installing its dependencies, building it and running its tests under covr.
- Almost half of CRAN has no tests to run
- Only CRAN packages are measured. Many have no percentage, most often because the package has no tests, and that blank is a recorded outcome, not missing data.
- NOT_CRAN
- Tests run with NOT_CRAN=true, so tests that skip themselves on CRAN run here, and the figure can differ from what CRAN's own checks see.
- Current version only
- Only the current version is measured, and a new version on CRAN is measured again. Older rows are kept but never filled in later. This is one package's run.
- Never 0%
- On a package page three states stay apart: measured, no tests, and not measured. Neither of the last two is ever shown as 0%.
- 81%of lines run by tests
- Advisories, method
Method
Security advisories
Advisories come from the R Consortium advisory database, a community record of security problems in R packages, as OSV publishes it.
- The copy
- The record is read once a day. The data is published under the Apache License 2.0 and is credited on the advisories list.
- Box under the name
- Under the package's name, a box names any advisory that affects the current release, with its fix or that there is none.
- Ranges
- Advisories state ranges, such as from 0.9.12 up to but not including 1.8.8. Each range is checked against every version CRAN has published, using the version rules R itself uses, so a release that came out after the advisory was written is still caught by its range.
- Not the package
- The rating is for the library flaw itself, not for how exposed the R package is, and it is never added up into a figure for the package.
- None known
About
Method, About Method Licence figures come from the Licences
License field of each package's DESCRIPTION file, read the way R itself reads it. No licence file is opened.tools::analyze_license() and R's own licence database, as CRAN's checks read it.| is read, so one string can offer two families.
Provides actuarial tools and building blocks for analysing, modelling, refining, and validating insurance rating models. Designed to support common GLM-based pricing tasks and the translation of statistical model output into practical tariff structures.
Full description
Provides actuarial tools and building blocks for analysing, modelling, refining, and validating insurance rating models. Designed to support common GLM-based pricing tasks and the translation of statistical model output into practical tariff structures. The package supports the construction of insurance tariff classes using a data-driven approach, based on the methodology of Antonio and Valdez (2012) <doi:10.1007/s10182-011-0152-7>.
- Maintainer
- Martin Haringa
- Licence
- GPL (>= 2)
- Latest release
- 1 Sep 2026
- First release
- 7 Feb 2019
More details
- Releases
- 26
- Needs compilation
- No
- Needs R
- >= 4.1.0
- Config/roxygen2/version
- 8.0.0
- Language
- en-US
- LazyData
- true
Task views (1)
Subjects (1) Method, SubjectsMethod
Subjects and collections
Subjects are the site's own grouping of CRAN packages, found by clustering. Collections are sets of packages that communities declare, such as the tidyverse.
- Subjects
- Subjects are found by clustering the words of current CRAN packages and the packages they use. No one edits them by hand.
- Collections
- Collections are sets that communities declare, through a package that installs the set or an organization on GitHub. The site finds them by rules.
- Who made each
- Subjects are marked Site and collections Community. Subjects, collections and task views are never mixed in one list.
- The day of the data
- Subjects and collections were last worked out on 22 Oct 2026.
Cite
Package
Run in R for the authors' preferred citation:
citation("insurancerating")Haringa, M. (2026). insurancerating: Actuarial Tools for Insurance Pricing Models (Version 0.8.2) [Computer software]. https://doi.org/10.32614/CRAN.package.insurancerating
About
This package has no citation file, so citation() returns this entry built from DESCRIPTION.
R Observatory
For a number measured here: a download total, a coverage figure, an archival date.
Balamuta, J. J. (2026). R Observatory: Metrics for insurancerating version 0.8.2 [Data set]. HJJB, LLC. Data release v2026-10-28. https://doi.org/10.5281/zenodo.21843040
About
From data release v2026-10-28, which the citation names so these numbers can be found later.
Health
All 13 check platforms pass.
r-devel-linux-x86_64-debian-clangThe unreleased R on Linux, x86_64, debian-clang
OK
- Version checked
- 0.8.2
- Time taken
- 473 s
r-devel-linux-x86_64-debian-gccThe unreleased R on Linux, x86_64, debian-gcc
OK
- Version checked
- 0.8.2
- Time taken
- 334 s
r-devel-linux-x86_64-fedora-clangThe unreleased R on Linux, x86_64, fedora-clang
OK
- Version checked
- 0.8.2
- Time taken
- 348 s
r-devel-linux-x86_64-fedora-gccThe unreleased R on Linux, x86_64, fedora-gcc
OK
- Version checked
- 0.8.2
- Time taken
- 318 s
r-devel-windows-x86_64The unreleased R on Windows, x86_64
OK
- Version checked
- 0.8.2
- Time taken
- 474 s
r-oldrel-macos-arm64The previous release of R on macOS, arm64
OK
- Version checked
- 0.8.2
- Time taken
- 119 s
r-oldrel-macos-x86_64The previous release of R on macOS, x86_64
OK
- Version checked
- 0.8.2
- Time taken
- 485 s
r-oldrel-windows-x86_64The previous release of R on Windows, x86_64
OK
- Version checked
- 0.8.2
- Time taken
- 607 s
r-patched-linux-x86_64The patched release of R on Linux, x86_64
OK
- Version checked
- 0.8.2
- Time taken
- 457 s
r-release-linux-x86_64The current release of R on Linux, x86_64
OK
- Version checked
- 0.8.2
- Time taken
- 450 s
r-release-macos-arm64The current release of R on macOS, arm64
OK
- Version checked
- 0.8.2
- Time taken
- 108 s
r-release-macos-x86_64The current release of R on macOS, x86_64
OK
- Version checked
- 0.8.2
- Time taken
- 380 s
r-release-windows-x86_64The current release of R on Windows, x86_64
OK
- Version checked
- 0.8.2
- Time taken
- 459 s
- 13 OK
Over time
No change since 25 Oct 2026
As a list (10)
| Changed | Worst status | OK | Notes | Warnings | Errors |
|---|---|---|---|---|---|
| 25 Oct 2026 | OK | 13 | 0 | 0 | 0 |
| 24 Oct 2026 | Error | 12 | 0 | 0 | 1 |
| 5 Aug 2026 | OK | 13 | 0 | 0 | 0 |
| 1 Aug 2026 | Note | 12 | 1 | 0 | 0 |
| 9 Jun 2026 | OK | 13 | 0 | 0 | 0 |
| 8 Jun 2026 | Error | 12 | 0 | 0 | 1 |
| 7 Jun 2026 | OK | 13 | 0 | 0 | 0 |
| 8 May 2026 | Note | 1 | 12 | 0 | 0 |
| 7 May 2026 | Warning | 1 | 11 | 1 | 0 |
| 10 Mar 2026 | Note | 4 | 10 | 0 | 0 |
Since March 2026
Downloads
Method, Downloads Method Download figures count requests logged by each distribution channel. They are not counts of installs or of users, because each channel publishes its own totals and this site reads them.Downloads
- Total downloads in the last 30 days
- 14It is the sum of 3 channels: r2u, autoCRAN and c2d4u. CRAN is switched off.
CRAN rank
4,588 of 26,530
CRAN
685 downloads in the last 30 days
- Rank
- 4,588 of 26,530
- Change
- +2.2% up on the 30 days before, the better direction
It is switched off. Put it back
r2u
11 downloads in the last 30 days
- Rank
- 6,263 of 30,526
- Change
- +10% up on the 30 days before, the better direction
It is in the total. Take it out
autoCRAN
3 downloads in the last 30 days
- Rank
- 17,776 of 29,212
- Change
- −81.3% down on the 30 days before, the worse direction
It is in the total. Take it out
c2d4u, no longer updated
0 downloads in the last 30 days
- Rank
- 6,270 of 7,575
- Change
- −100% down on the 30 days before, the worse direction
It is in the total. Take it out
The total is 14 downloads in the last 30 days. It is the sum of 3 channels: r2u, autoCRAN and c2d4u. CRAN is switched off.
Over time
Dependencies
Needs a package facing archival
| DHARMa | in Imports | Fix due 14 Nov 2026 | 17 days left |
|---|
- Needs
- 17
- Dependent packages
- 0
- Suggested by
- 0
Needs (17)
Code
Method, Code Method Code metrics come from reading the released source of each package version. The package is never installed, loaded or run.Code metrics
README, vignettes, a NEWS file and the shares read from its help pages. Files kept only in the repository, such as a pkgdown configuration or CI files, are read by the repository scan instead.
- Functions
- 396
- Public exports
- 66
- Lines of R code
- 28,743
- Median complexity
- 4
Functions (396)
Size and composition
Lines by kind (49,369)
| Kind | Lines | Share |
|---|---|---|
| R code | 28,743 | 58% |
| Tests | 9,914 | 20% |
| Documentation | 8,117 | 16% |
| Guides | 2,595 | 5% |
Lines by language
| Language | Lines | Share |
|---|---|---|
| R | 38,657 | 78% |
| Rd | 8,117 | 16% |
| Vignettes | 2,595 | 5% |
Languages are counted from file extensions.
- Files
- 183
- R functions
- 396
- Object systems
- S3: 81 methods
- Deprecated functions
- 44
Complexity
- Median
- 4
- Mean
- 7.79
- Highest
- 79
- Median lines per function
- 23
About complexity
Cyclomatic complexity counts the independent paths through a function: 1 is a straight line, higher is harder to test. R functions only.
Call graph figures
- R functions
- 396
- Calls
- 513
- Unconnected
- 33
- Groups
- 14
Growth (26 releases)
Release changes
Tests
Coverage was measured, but at least one test failed during the run.
- Lines run by tests
- 80.8%
- Expressions run by tests
- 81.8%
- Test cases
- 351
- Exports named in tests
- 95.5%
Coverage by file (32)
Coverage run
- Lines counted
- 13,795
- Lines the tests ran
- 11,139
- Tests passed
- No
- Measured with
- covr 3.6.5 on R 4.6.1
Test suite
- Has tests
- Yes
- Test frameworks
- testthat
- Test cases
- 351
- Lines of tests
- 9,914
- Test lines per line of code
- 0.34
Documentation
- Exports documented
- 100%
- Arguments documented
- 90.7%
- Return value documented
- 98.5%
- Help pages with examples
- 54.1%
- Examples run in checks
- 76.1%
Guides (5)
Other documentation
- README
- No
- Release notes file
- Yes
- Help pages
- 85
- Lines of documentation
- 8,117
Datasets
Method, Datasets Method The datasets inside packages are read from their R objects in datasets
data/ folders when the code is analysed. Each object is described by its class, its shape and its columns, and fingerprinted so the same data can be found in other packages.data() are listed, 76,180 on CRAN and 8,045 on Bioconductor, so the list is not every file in data/.
People
Method, People Method People on the site are the names packages give them in their Author and maintainer identity
DESCRIPTION files: authors from the author list, and the maintainer from the Maintainer field. Spellings of one name become one person only where the rules below allow it, and when in doubt the rules keep people apart.
Maintainer since 0.4.0 (2019), author
Repository
Method, figures by host Method Repository signals are the figures read from the source repository a package links to: stars, forks, issues, commits, releases and the time issues take to close. They are read from GitHub, GitLab, Codeberg and Bitbucket.Repository signals
URL and BugReports fields of its DESCRIPTION file. Read-only mirrors, the cran and bioc accounts on GitHub and git.bioconductor.org, are left out.
MHaringa / insurancerating on github.com
- Stars
- 95+1.1% up on 30 days ago, the better direction
- Forks
- 22
- Open issues
- 0
- Last commit
- 18 Oct 2026
Activity
- Commits
- 329
- Open pull requests
- 0
- Tagged releases
- 26
- Latest tagged release
- v0.8.2, 1 Sep 2026
- In development
- Default branch at 0.8.2.9000, ahead of CRAN 0.8.2 (checked 2026-10-25)
- Issues closed in
- 14 days (median)
- Pull requests closed in
- –
- Pull requests merged
- –
- Created
- 3 Sep 2018
- Licence file reads as
- –
Development practices (7)
| Kind | Found |
|---|---|
| Continuous integration | GitHub Actions |
| Docs source | README.Rmd, pkgdown GitHub Pages site last deployed 2026-10-18 The repository has a site deploy workflow pkgdown site last built 2026-10-18 |
| CRAN release process | cran-comments.md |
| Lint, format, editor | RStudio project |
Method, repository practices Method Beta Each week a scan of the public source repository a package links to looks for the tools a maintainer has set up, and the Repository section lists the findings. Repositories on GitHub and GitLab are scanned.Repository practices
R CMD build reads .Rbuildignore and leaves out files used only in development, such as .github/, .lintr, renv/, a Dockerfile and cran-comments.md, so the released source file holds almost none of them. The repository is the one place these files stay visible.
History
Method, History Method Archived is built from CRAN's archive records, its list of check deadlines and Bioconductor's package records. Every figure is counted to 28 Oct 2026, the day the data was read.Packages leaving
- On CRAN
- Release
| Version | Released | R |
|---|---|---|
| 0.8.2 current | 1 Sep 2026 | 4.6.1 |
| 0.8.1 | 30 Jul 2026 | 4.6.1 |
| 0.8.0 | 2 Jun 2026 | 4.6.0 |
| 0.7.5 | 9 Oct 2024 | 4.4.1 |
| 0.7.4 | 20 May 2024 | 4.4.0 |
| 0.7.3 | 9 May 2024 | 4.4.0 |
| 0.7.2 | 20 Dec 2022 | 4.2.2 |
| 0.7.1 | 6 Sep 2022 | 4.2.1 |
Earlier versions (18)
| Version | Released | R |
|---|---|---|
| 0.7.0 | 8 Jul 2022 | 4.2.1 |
| 0.6.9 | 11 Dec 2021 | 4.1.2 |
| 0.6.8 | 10 Nov 2021 | 4.1.2 |
| 0.6.7 | 28 Jul 2021 | 4.1.0 |
| 0.6.6 | 19 May 2021 | 4.1.0 |
| 0.6.5 | 22 Mar 2021 | 4.0.4 |
| 0.6.4 | 12 Jan 2021 | 4.0.3 |
| 0.6.3 | 28 Oct 2020 | 4.0.3 |
| 0.6.2 | 8 Jun 2020 | 4.0.0 |
| 0.6.1 | 29 Apr 2020 | 4.0.0 |
| 0.6.0 | 11 Apr 2020 | 3.6.3 |
| 0.5.2 | 31 Mar 2020 | 3.6.3 |
| 0.5.1 | 29 Mar 2020 | 3.6.3 |
| 0.5.0 | 12 Mar 2020 | 3.6.3 |
| 0.4.3 | 1 Nov 2019 | 3.6.1 |
| 0.4.2 | 31 May 2019 | 3.6.0 |
| 0.4.1 | 10 Apr 2019 | 3.5.3 |
| 0.4.0 | 7 Feb 2019 | 3.5.2 |
Release notes (0.8.2)
Changes since 0.8.1
rating_table()gainsestimate_namefor assigning exact names to fitted coefficient or relativity columns. It accepts one name for one model, a vector in model order, or a named vector for multi-model comparisons;autoplot()andas_gt()retain the custom columns.edit_smoothing()gainsslope_adjustment, usingfromas its anchor, for changing the remaining development of an effective smoothing after a selected anchor. Values before the anchor remain unchanged and the edited curve is continuous at the anchor. The defaultslope_adjustment = 1leaves the smoothing unchanged.calibrate_model()adds a final multiplicative calibration step for refined log-link GLMs. It changes only the overall fitted level, records the applied factor and intercept shift, and remains compatible withrating_table()andadd_prediction().add_restriction()now warns when a newly added numeric interval overlaps the existing interval classification. The message identifies the conflicting levels and explains how a separate replacement variable can be supplied withreplaceswhen the intention is to replace the original classification.autoplot.rating_refinement()gainsshow_segments = FALSEfor inspecting a continuous smoothing curve without displaying the proposed tariff segments.premium_change()interprets the effective smoothing in a refinement using either the existing doubling comparison or a fixed increment supplied withincrement. Current and historical refinement states can be selected withstepsand compared with print andas_gt()methods. The defaultbasis = "curve"evaluates the continuous effective smoothing;basis = "segments"compares the implemented tariff-interval relativities.add_restriction()gainsreplaces, which allows a new fixed tariff factor to explicitly replace an existing standalone model term duringrefit(). The replacement is retained in refinement summaries and audits. The defaultreplaces = NULLpreserves the existing additive behaviour for new factors.rating_grid_db()andmerge_date_ranges_db()add lazy database variants for portfolios that should be reduced before they are imported into R.rating_grid_db()translates grouped counts and sums throughdbplyr, whilemerge_date_ranges_db()implements temporal gaps-and-islands reduction in DuckDB. A new large-portfolio vignette compares local and database workflows and illustrates lazy reduction of portfolios with 10 and 50 million records.rating_grid()andmerge_date_ranges()are now documented together as portfolio-reduction functions. Both use groupeddata.tableoperations internally and return ordinarydata.frameobjects for downstream use.split_periods_to_months()andactive_rows_by_date()are now documented as portfolio time operations. Their calculations use localdata.tableobjects internally, while their public output is always a regulardata.frame.split_periods_to_months()now usesdataas its first argument (dfremains available as a deprecated named argument) and expands periods without a row-wise R loop.active_rows_by_date()replaces the technicalnomatchandmultarguments withunmatchedandmultiple_matches; the old names remain available with deprecation warnings.merge_date_ranges()now usesmerge_gap_days = 1by default, so only overlapping and directly adjacent coverage periods are merged unless a wider administrative gap is selected explicitly. The interval reduction is now performed as a groupeddata.tablecalculation, avoiding row-wise R loops for large portfolios. Empty inputs, nested intervals and aggregation functions without ana.rmargument are handled explicitly. The deprecatedreduce()wrapper retains its historical default for compatibility. The first argument is now nameddata(dfremains available as a deprecated named argument), and the result is a regulardata.framesubclass whiledata.tableremains an internal implementation detail. Together withrating_grid(), the function is documented as part of the portfolio reduction workflow.rating_table()now distinguishes structural and comparative level order. Pure numeric levels and numeric intervals are ordered from low to high, explicitly ordered factors retain their declared level sequence, and nominal factors are ordered from the highest to the lowest fitted effect by default. Numeric and ordinal order are not displaced by the fitted reference level. The newlevel_order_by_risk_factorargument can preserve model order or select alphabetical or estimate-based ordering for individual factors. Risk factors can retain formula order or be sorted alphabetically, and comparisons with several models can select the model that determines the estimate ordering. The resulting order is retained byas_gt()andautoplot().add_rebasing()can rescale the current relativities of a categorical tariff factor so that an explicit reference level equals 1. When no level is supplied, the level with the largest portfolio weight is selected. Rebasing preserves every ratio between factor levels and can be applied after restrictions, shrinkage or sublevel relativities.add_shrinkage()can reduce differences between categorical tariff relativities before refitting. Relativities are blended with a weighted centre on the log scale and rescaled to preserve their weighted arithmetic mean. Explicit GLM weights or a simple exposure offset are detected when possible; a column name orweights = "equal"can be supplied directly. The selected credibility, weighting basis and before/after relativities are retained in the ordered refinement specification.audit_refinement()now provides a reproducible comparison between the unrestricted and refined GLM on common observed model points. It records the package version, formulas and ordered refinement steps, and reports the portfolio and exposure-weighted level effects before and after refinement.summary()on a pre-refitrating_refinementobject now gives a structured review of the proposed specification, whileas_gt()formats the fitted audit for reporting.bootstrap_coefficients()now assesses GLM coefficient stability by resampling the estimation portfolio rows and refitting the model. Individual failed fits are retained as missing replicates instead of stopping the full run.summary()reports link-scale or exponentiated results, with"relativity"available as an alias, andas_gt()provides a formatted coefficient table.- The function documentation, README and vignettes now use a consistent, practical actuarial style. The documentation distinguishes observed portfolio experience, fitted model effects, explicit tariff assumptions and model diagnostics, and states relevant interpretation limits more clearly. Experimental documentation badges have been removed, and the low-level
rmse()helper is listed with the package utilities in the reference index. add_smoothing()keeps"spline"as its general-purpose default and fits it as an unconstrained penalized cubic regression spline. Polynomial smoothing is selected explicitly with"poly", while"gam"provides a thin-plate GAM comparison.degreeis limited to polynomial fits,kis limited to spline methods, and an omittedkis adapted to the available grouped model points. Its arguments now follow the modelling sequence of variables, requiredbreaks, smoothing method, complexity and weights. Shape-constrained methods now use readable values such as"increasing","decreasing","increasing_convex"and"increasing_concave"; the former short SCOP codes remain accepted as compatibility aliases.add_smoothing()now focuses only on the initial smoothing and its structural shape. The former global strength adjustment has been removed.edit_smoothing()now supports a multiplicative localadjustment, such as1.05for an increase of up to 5 percent, together with continuous inherited or linear transitions and an explicit discontinuous"step"transition. Relative adjustments are anchored to the unchanged smoothing at both interval boundaries and remain separate from explicit target-value edits. Eachedit_smoothing()call is stored as a separate cumulative refinement step. In addition,edit_smoothing()now supportsslope_adjustment, withfromas its anchor. This leaves the curve unchanged through the anchor and scales only its remaining change, allowing a continuous effect to become steeper or flatter above a selected source-variable value. Inautoplot.rating_refinement(),stepselects the cumulative smoothing state andshow_initial_smoothing = TRUEoverlays the originaladd_smoothing()curve for comparison.add_restriction()recognises a split variable created by an earlieradd_relativities()step without requiringallow_new_risk_factors = TRUE. A partial restriction changes the supplied levels and fixes all remaining levels at their current derived relativities.add_relativities()now validates sublevels against the observedsplit_variableand parent categories againstmodel_variablebefore storing a refinement step. Closely matching observed values are suggested for likely spelling or spacing errors. The resulting hybrid tariff factor is now named withoutput_variable; its default is the model variable followed by_refined, while application-specific names such assbi_tariff_segmentcan be supplied explicitly.split_level()andrelativities()are now the primary helpers for defining named sublevel splits and share one reference page describing their combined use. The low-levelsplit_relativities()constructor is deprecated because it does not record the parent model level required byadd_relativities().- Spline, GAM and shape-constrained smoothing validate the requested basis dimension against the number of unique grouped covariate values before model fitting.
autoplot.rating_table()andautoplot.factor_analysis()abbreviate long risk-factor level labels by default. Shortened labels use one terminal period, can be disabled, and can be replaced by explicitly supplied display labels. Both methods now also providelegend_positionfor consistent legend placement.autoplot.riskfactor_gam()andautoplot.tariff_segments()now use one shared plotting implementation and are documented on one reference page. Segment plots retain their boundaries by default and can show the underlying GAM curve alone withshow_segments = FALSE.derive_tariff_segments()now usessegmentation_penaltyas its primary split-control argument;complexityremains available as a deprecated alias. The method divides the fitted GAM curve without applying a second exposure or claim-volume weight; these quantities have already informed the GAM estimate and remain available throughsummary()as diagnostics. Validation now covers malformed GAM objects, non-finite values and whole-number search controls. Tree splits are read from the fitted tree structure rather than parsed from printed rules.add_tariff_segments()reapplies stored boundaries to the continuous risk factor, so filtering or reordering rows no longer misaligns assignments and unsupported values outside the fitted range fail explicitly.