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

