Data dictionary


Source workbook

Two worksheets. Cardiac carries 7,452 rows and 36 columns, one row per pack. Glossary carries the organisers’ metric definitions.

Identification

Column Type Notes
KEY(MS+SG+FINAL NFC) text Composite key: molecule, subgroup, formulation. 248 distinct.
PACK_DESC text Pack description including strength and count. 7,438 distinct.
BRANDS text Brand name. 3,788 distinct.
MOLECULE_DESC text Active ingredients, + separated. 285 distinct.
STRENGTH (ONLY 1 MOL.) text Strength of the first molecule only.
PACK VOLUME text Populated for liquids and injectables; 0 for solids.

Company

Column Type Notes
COMPANY text Consolidated group; trailing * marks consolidation. 279 distinct.
MANUFACT. DESC text Manufacturing entity.
COMPANY CLUSTER, COMPANY DIVISION, COMPANY SUB DIVISION text Reporting hierarchy, near-identical to COMPANY in this extract.
COMPANY India Business Prescription text Business unit, e.g. CIPLA IB RX.
INDIAN_MNC text INDIAN or MNC. 256 of 7,452 rows are MNC.

Classification

Column Type Notes
SUPERGROUP text CARDIAC throughout.
GROUP text ATC-4 class, e.g. C02F HYPOTENSIVE DUAL COMB.. 14 distinct.
SUBGROUP text ATC-5 molecule or combination. 149 distinct.
CARDIAC SEGMENT text Anti Hypertensives, Lipid Regulators, Anti Angina.
CARDIAC SUB SEGMENTS text 15 values including one placeholder -.
ACUTE_CHRONIC text CHRONIC throughout.
FINAL NFC text Dosage form. SOLIDS 7,390; INJECTIONS 43; PAEDIA 8; LIQUIDS 5; TOPICAL 5; OPHTHAL 1.
Plain/Combination text Combination 4,547; Plain 2,905.

Measures

All numeric, in INR crore for value and pack-dependent units for quantity.

Column Meaning
MAT FEB'24 / '25 / '26 Moving annual total value. MAT Feb’26 covers March 2025 to February 2026.
MAT CP FEB'24 / '25 / '26 Moving annual total at constant prices, stated at the previous year’s price level.
QTY MAT FEB'24 / '25 / '26 Moving annual total quantity.
Sales 'DEC'25, 'JAN'26, 'FEB'26 Individual month value.
PR_DEC'25, PR_JAN'26, PR_FEB'26 Price to retailer.

How the organisers say to read them

From the glossary, and the basis for the framework’s weighting:

  • MAT represents overall market size and long-term growth.
  • MAT CP should be used to understand real demand growth, excluding price effects.
  • QTY reflects actual consumption trends.
  • PR and monthly sales can be used to assess recent pricing and momentum.

Derived fields

Added by ingestion/normalize.py.

| Field | Type | Derivation | | — | — | — | | company_clean | text | COMPANY with the trailing * removed. | | is_focal | bool | COMPANY equals market.focal_company. | | molecules | list | MOLECULE_DESC split on +, salt suffixes stripped. | | molecule_count | int | Length of molecules. | | molecule_canonical | text | Canonical molecules rejoined with ` + . | | molecule_signature | text | Same, sorted, so A + B and B + A match. | | treatment_archetype | text | Monotherapy, Dual FDC, or Triple / Poly FDC. | | brand_root | text | Umbrella brand recovered from a line extension. | | brand_key | text | company_clean | brand_root. | | realised_price_per_unit | float | MAT Feb'26 over QTY MAT Feb'26, guarded. | | is_oral_solid | bool | FINAL NFC equals SOLIDS. | | is_mnc` | bool | INDIAN_MNC equals MNC. |


Warehouse tables

Written to data/processed/cardiac.duckdb, with a parquet mirror alongside.

sku_facts

One row per pack: every source column plus every derived field. 7,452 rows.

space_facts

One row per opportunity space. 326 rows before filtering, 108 after.

Column Meaning
level One of the six space levels.
space_id Stable identifier, e.g. MOL_C02F0O_CILNIDIPINE_TELMISARTAN.
space_label Human-readable label.
segment, sub_segment Dominant context by value.
value_t0/t1/t2 Summed MAT for the three periods.
cp_t0/t1/t2 Summed MAT CP.
qty_t0/t1/t2 Summed QTY MAT.
recent_3m_sales Sum of the three monthly columns.
focal_value_t0/t1/t2 Cipla’s value in the space.
sku_count Distinct packs.

space_membership

The SKU-to-space map, one row per pair. 50,191 rows. Retained so competitive structure and Cipla’s position can be recomputed for any subset without re-deriving the hierarchy.

company_facts and brand_facts

Value by company, and by brand, within every space, with share and rank.

glossary and build_metadata

The organisers’ definitions, and the build record including a SHA-256 of the source workbook.


Computed metrics

Added by the analytics package, present on every scored space.

Growth and demand

Metric Formula
value_yoy value_t2 / value_t1 - 1
value_cagr_2y (value_t2 / value_t0) ^ 0.5 - 1
absolute_growth_cr value_t2 - value_t1
real_growth cp_t2 / value_t1 - 1
volume_growth qty_t2 / qty_t1 - 1
price_effect value_yoy - real_growth
momentum (recent_3m_sales x 4) / value_t2 - 1
price_per_unit_t2 value_t2 / qty_t2

Rates are clipped to [-1.0, 3.0]; momentum to [-0.9, 1.5].

Competition

Metric Meaning
hhi Sum of squared percentage shares.
n_players Companies with value above zero.
leader_share, top3_share, top5_share Concentration at the top.
leader_company Largest company by value.
effective_competitors 10000 / hhi.
crowding Players per ₹100 crore.
share_churn Half the total absolute share movement year on year.
new_entrant_count Companies with zero in t1 and value in t2.
price_erosion max(0, -price_effect).
concentration_label Fragmented, Moderately concentrated, Concentrated.
is_structurally_closed Fewer than 3 players, or leader above 80 per cent.

Focal position and right to win

Metric Meaning
focal_share_t2 Cipla’s share of the space.
focal_share_delta_pp Share change in percentage points.
focal_growth_gap Cipla’s growth minus the space’s growth.
rtw_current_share Same as focal_share_t2.
rtw_share_momentum focal_growth_gap, clipped to [-0.5, 0.5].
rtw_molecule_adjacency Value-weighted share of the space’s molecules Cipla markets.
rtw_brand_franchise 1.0 molecule match, 0.75 ATC-5, 0.60 sub-segment, 0.30 segment, else 0.
rtw_detailing_adjacency Cipla’s share of the parent sub-segment.
rtw_formulation_fit Dosage-form mix overlap with Cipla’s cardiac mix.
adjacent_cipla_brands Extendable brand roots already carrying one of the space’s molecules.

Signals and scores

Metric Meaning
trend_tilt_raw Summed signed magnitudes before centring.
trend_multiplier Centred within level, clipped to [0.80, 1.25].
trend_signal_ids Comma-separated signal identifiers that attached.
pillar__* The four pillar scores, 0 to 100.
score__pillar__metric Every metric percentile, retained for explanation.
market_opportunity_index Weighted blend of the first three pillars.
right_to_win_score The fourth pillar.
rtw_gate The multiplier derived from it.
cipla_priority_score MOI x rtw_gate.
moi_rank, cps_rank Rank within level.
moi_band, rtw_band High / Medium / Low and Strong / Moderate / Weak.
strategic_verdict Double down, Build capability, Selective participation, Avoid or partner, Harvest or exit.

Space levels

Level Prefix Built from Scored
segment SEG_ CARDIAC SEGMENT 3
sub_segment SUB_ Segment and sub-segment 14
molecule_class CLS_ GROUP (ATC-4) 13
molecule_combination MOL_ SUBGROUP (ATC-5) 45
treatment_archetype ARC_ Segment and archetype 7
anchor_molecule ANC_ Every pack containing an ingredient 26

Anchor spaces overlap the others and are not additive with them.


Back to top

Shreyas Thakur. Built for Ascend Season 4. Figures are computed from the supplied Cardiac prescription audit, MAT February 2026. The dataset itself is licensed material and is not distributed with this site.

This site uses Just the Docs, a documentation theme for Jekyll.