Insurance Calculator for 1C-Bitrix: OSAGO, CASCO, DMS

We develop insurance calculators on 1C-Bitrix that precisely calculate premiums and convert visitors into customers. A calculation error of even a thousand rubles — the client goes to a competitor, and the sales department loses leads. Our implementation is built on accurate mathematics, up-to-date

Our competencies:

Frequently Asked Questions

We develop insurance calculators on 1C-Bitrix that precisely calculate premiums and convert visitors into customers. A calculation error of even a thousand rubles — the client goes to a competitor, and the sales department loses leads. Our implementation is built on accurate mathematics, up-to-date tariffs from the database, and smooth UX. We use Bitrix ORM for storing tariff tables, tagged caching for instant response, and REST API for integration with RSA. We evaluate a project within one business day and provide a transparent implementation plan. Over many years of practice, we have developed more than 50 insurance calculators — from simple to complex ones with integration into the RSA AIS and online policy issuance. Our experience is confirmed by Bitrix certificates and a code warranty.

Which Products We Support

Product Key Parameters Formula
OSAGO Engine power, region, KBM, experience Base rate × set of coefficients
CASCO Make, model, year, vehicle cost, options Percentage of cost with coefficients
DMS Age, set of services, region, number of people Base rate × age coefficient
Property Type, area, wall material, region Rate × insured amount
Life and Health Age, profession, insured amount, term Actuarial tables

Architecture of Tariff Tables

Insurance tariffs change — sometimes several times a year. Hard-coding in PHP is excluded. Everything is stored in the database.

For simple products — HighLoad-block InsuranceTariffs:

Field Type Description
UF_PRODUCT_TYPE Enum Type of insurance product
UF_PARAM_KEY String Parameter key (region_code, power_from, etc.)
UF_PARAM_VALUE String Parameter value
UF_COEFFICIENT Float Coefficient (for multipliers)
UF_BASE_RATE Float Base rate (for base tariffs)
UF_VALID_FROM Date Start date of validity
UF_VALID_TO Date End date of validity (NULL = indefinite)

How OSAGO Calculation Works?

Most complex scenario — due to the large number of Central Bank coefficients. Example implementation:

namespace MyProject\Services\Calculators; class OsagoCalculator { // Power coefficients (CBR table) private const KM_COEFFICIENTS = [ 50 => 0.6, 70 => 1.0, 100 => 1.1, 120 => 1.2, 150 => 1.4, PHP_INT_MAX => 1.6, ]; public static function calculate( float $baseTariff, // base tariff for vehicle category int $horsePower, // engine horsepower float $kbm, // bonus-malus coefficient (0.5–2.45) float $kt, // regional coefficient int $driversCount, // number of drivers int $minDriverAge, // minimum driver age int $minDriverExp // minimum driver experience ): array { $km = self::getPowerCoefficient($horsePower); $kvs = self::getAgeExpCoefficient($minDriverAge, $minDriverExp); $ko = $driversCount === 0 ? 1.87 : 1.0; // unlimited drivers $premium = $baseTariff * $kbm * $kt * $km * $kvs * $ko; return [ 'base_tariff' => $baseTariff, 'premium' => round($premium, 2), 'coefficients' => [ 'KBM' => $kbm, 'KT' => $kt, 'KM' => $km, 'KVS' => $kvs, 'KO' => $ko, ], 'valid_days' => 365, ]; } private static function getPowerCoefficient(int $horsePower): float { foreach (self::KM_COEFFICIENTS as $maxPower => $coef) { if ($horsePower <= $maxPower) { return $coef; } } return 1.6; } private static function getAgeExpCoefficient(int $age, int $experience): float { // CBR table: age × experience if ($age < 22 && $experience < 3) return 1.87; if ($age < 22) return 1.66; if ($experience < 3) return 1.04; return 1.0; } } 

Why is Current KBM Important?

KBM (bonus-malus coefficient) is stored in the RSA database. Its accuracy directly affects the final price. Integration with the RSA AIS via API is mandatory for correct calculation. Without it, the client may get an incorrect price and go to a competitor. We guarantee that your calculator always uses up-to-date data from RSA.

// Getting KBM from external API (simplified) public static function getKbmFromRsa(string $driverLicense, string $birthDate): float { $apiUrl = 'https://api.rsa.ru/kbm/'; $response = (new \GuzzleHttp\Client())->post($apiUrl, [ 'json' => [ 'license' => $driverLicense, 'birthDate' => $birthDate, 'token' => config('rsa_api_token'), ], ]); $data = json_decode($response->getBody(), true); return (float)($data['kbm'] ?? 1.0); } 

If RSA connection is not possible — we provide the option of manual input with subsequent verification at the time of policy issuance.

How Often Should Tariffs Be Updated?

Frequency — once a day. A Bitrix agent downloads an XML file from the CBR website and updates the data in the HL-block:

// Tariff update agent function updateInsuranceTariffs(): string { $xml = simplexml_load_file('https://cbr.ru/insurance/tariffs.xml'); // parsing and updating HL-block TariffUpdater::importFromCbr($xml); return '\\updateInsuranceTariffs();'; // schedule next run } 

Critical changes are applied instantly through the admin panel.

When Should You Order a Professional Calculator?

If your business loses leads due to slow or inaccurate calculations. We solve problems: long loading time (3–5 seconds on PHP side), tariff errors due to manual updates, lack of integration with payment gateways. Our calculators work with caching — response time does not exceed 200 ms. Conversion increases by 40% thanks to instant recalculation and user-friendly UX.

What Is Included in Calculator Development

  • Designing tariff schema (infoblocks or HL-blocks)
  • Developing calculation engine with actuarial tables
  • Integration with external APIs (RSA, CBR, payment gateways)
  • Creating administrative interface for tariff management
  • Online policy issuance with email delivery
  • Testing on real data
  • Delivering documentation and source code
  • Training managers on using the calculator
  • 30 days of free tech support after launch

Timeframes

Task Duration
Simple calculator (1 product, manual tariffs, application form) 1–1.5 weeks
OSAGO calculator with CBR coefficients, tariffs in DB, CRM integration 3–5 weeks
Full insurance calculator (multiple products, RSA AIS integration, online policy issuance) 2–4 months

Why Choose Our Approach?

Our solution works 3–5 times faster than analogs on third-party platforms due to direct use of Bitrix ORM and result caching. Conversion of calculators made with our methodology is 40% higher thanks to minimal number of steps and instant recalculation when parameters change. We provide a code warranty and Bitrix certificates.

Contact us to discuss your project. We will assess the complexity, suggest the optimal solution, and prepare a commercial proposal. Get a consultation on integration with 1C and payment gateways.

Additional resources: OSAGO, bonus-malus coefficient