{
  "$comment": "Keel compliance rules v0.1.0. Rules are DATA. Changing this file = new version, two named reviewers, golden tests in spec/rules/tests must pass. Every legal_ref is to be re-verified by the reviewers against the bare Act/Rules + latest MCA notifications before publishing. Fee figures are ESTIMATES for display; MCA computes the actual.",
  "version": "0.1.1",
  "effective_from": "2026-09-21",
  "reviewers": [
    {
      "name": "TBD (CS)",
      "role": "reviewer1",
      "membership_no": null,
      "signed_off": null
    },
    {
      "name": "TBD (CS/CA)",
      "role": "reviewer2",
      "membership_no": null,
      "signed_off": null
    }
  ],
  "verify_before_publish": [
    "DIR-3 KYC periodicity (annual vs triennial) under the 2026 amendment to Companies (Appointment and Qualification of Directors) Rules — confirm text and effective date.",
    "Small company thresholds ₹10 cr paid-up / ₹100 cr turnover — confirm notification date (1 Dec 2025) and that OPC/holding/subsidiary/s.8 exclusions stand.",
    "PAS-6 applicability to private companies (Rule 9B) and current deadline/extension notifications.",
    "Higher additional fee multipliers for repeat defaults (Rule 12 Registration Offices and Fees Rules, 2022 amendment) — confirm table.",
    "CHG-1 ad valorem windows post Companies (Amendment) Act 2019."
  ],
  "fee_tables": {
    "normal_fee_by_authorised_capital": {
      "$comment": "Companies (Registration Offices and Fees) Rules 2014, Annexure, Table (fee for filing forms). Bands in INR authorised capital → fee INR.",
      "bands": [
        {
          "upto": 99999,
          "fee": 200
        },
        {
          "upto": 499999,
          "fee": 300
        },
        {
          "upto": 2499999,
          "fee": 400
        },
        {
          "upto": 9999999,
          "fee": 500
        },
        {
          "upto": null,
          "fee": 600
        }
      ],
      "no_share_capital_fee": 200
    },
    "additional_fee": {
      "per_day_100": {
        "$comment": "s.403 + Rule 12(1) proviso: forms under s.92 (MGT-7/7A) and s.137 (AOC-4) — ₹100 per day of delay, no cap on fee. Penalty caps (s.92(5): ₹2,00,000; s.137(3): ₹50,000 company) are adjudication penalties, separate from fee.",
        "per_day": 100
      },
      "slab": {
        "$comment": "Rule 12 Table: multiple of normal fee by delay in days.",
        "slabs": [
          {
            "upto_days": 15,
            "multiplier": 1
          },
          {
            "upto_days": 30,
            "multiplier": 2
          },
          {
            "upto_days": 60,
            "multiplier": 4
          },
          {
            "upto_days": 90,
            "multiplier": 6
          },
          {
            "upto_days": 180,
            "multiplier": 10
          },
          {
            "upto_days": null,
            "multiplier": 12
          }
        ],
        "repeat_default_slabs": {
          "$comment": "'Higher additional fee' where the same form was delayed again within 365 days (2022 amendment) — VERIFY table before enabling.",
          "enabled": false,
          "slabs": [
            {
              "upto_days": 15,
              "multiplier": 1
            },
            {
              "upto_days": 30,
              "multiplier": 3
            },
            {
              "upto_days": 60,
              "multiplier": 6
            },
            {
              "upto_days": 90,
              "multiplier": 9
            },
            {
              "upto_days": 180,
              "multiplier": 15
            },
            {
              "upto_days": null,
              "multiplier": 18
            }
          ]
        }
      }
    }
  },
  "rules": [
    {
      "id": "ONBOARD-CUSTODY",
      "kind": "internal",
      "title": "Record legal basis for keeping registers in Keel (s.94 / Rule 27-28)",
      "section": "s.94(1), Rule 27-28 M&A Rules",
      "applies_to": {
        "class": [
          "*"
        ]
      },
      "trigger": {
        "kind": "event",
        "event_type": "company.attested"
      },
      "due": {
        "base": "event_date",
        "offset_days": 30
      },
      "closed_by": {
        "event_type": "company.custody_basis_set"
      },
      "additional_fee": {
        "basis": "none"
      },
      "severity": "blocking",
      "note": "Certificate export is blocked until closed. If basis is special resolution, MGT-14 rule also fires."
    },
    {
      "id": "INC-20A",
      "kind": "filing",
      "form": "INC-20A",
      "title": "Declaration of commencement of business",
      "section": "s.10A, Rule 23A Incorporation Rules",
      "applies_to": {
        "class": [
          "*"
        ],
        "only_if": {
          "commencement_filed_on": null
        }
      },
      "trigger": {
        "kind": "once"
      },
      "due": {
        "base": "incorporation_date",
        "offset_days": 180
      },
      "closed_by": {
        "event_type": "filing.recorded",
        "where": {
          "form": "INC-20A"
        }
      },
      "additional_fee": {
        "basis": "slab"
      },
      "severity": "critical",
      "note": "Company cannot commence business/borrow before filing. Penalty ₹50,000 company + ₹1,000/day officer (cap ₹1,00,000); ROC may strike off."
    },
    {
      "id": "FIRST-BM",
      "kind": "meeting",
      "title": "First board meeting within 30 days of incorporation",
      "section": "s.173(1)",
      "applies_to": {
        "class": [
          "*"
        ]
      },
      "trigger": {
        "kind": "once"
      },
      "due": {
        "base": "incorporation_date",
        "offset_days": 30
      },
      "closed_by": {
        "event_type": "meeting.held",
        "where": {
          "meeting_kind": "board"
        },
        "first_only": true
      },
      "additional_fee": {
        "basis": "none"
      },
      "severity": "high"
    },
    {
      "id": "FIRST-AUDITOR",
      "kind": "internal",
      "title": "First auditor appointed by board within 30 days of incorporation",
      "section": "s.139(6)",
      "applies_to": {
        "class": [
          "*"
        ]
      },
      "trigger": {
        "kind": "once"
      },
      "due": {
        "base": "incorporation_date",
        "offset_days": 30
      },
      "closed_by": {
        "event_type": "auditor.appointed",
        "where": {
          "kind": "first"
        }
      },
      "additional_fee": {
        "basis": "none"
      },
      "severity": "high",
      "note": "If board fails, members appoint within 90 days at EGM."
    },
    {
      "id": "BM-MIN-COUNT",
      "kind": "meeting",
      "title": "Minimum board meetings in the calendar year",
      "section": "s.173(1) (4 per year) / s.173(5) (small company & OPC: 1 in each half, gap ≥ 90 days)",
      "applies_to": {
        "class": [
          "*"
        ]
      },
      "trigger": {
        "kind": "periodic",
        "period": "calendar_half"
      },
      "due": {
        "base": "period_end",
        "offset_days": 0
      },
      "closed_by": {
        "event_type": "meeting.held",
        "where": {
          "meeting_kind": "board"
        },
        "within_period": true
      },
      "additional_fee": {
        "basis": "none"
      },
      "severity": "high",
      "overrides": [
        {
          "when": {
            "class": [
              "private",
              "public_unlisted",
              "section8"
            ]
          },
          "trigger": {
            "kind": "periodic",
            "period": "calendar_quarter"
          },
          "note": "Not a legal quarter rule; four meetings with ≤120-day gaps is the law — the quarter cadence is Keel's default planner. BM-GAP-120D enforces the statute."
        }
      ]
    },
    {
      "id": "BM-GAP-120D",
      "kind": "meeting",
      "title": "Next board meeting — gap must not exceed 120 days",
      "section": "s.173(1)",
      "applies_to": {
        "class": [
          "private",
          "public_unlisted",
          "section8"
        ]
      },
      "trigger": {
        "kind": "event",
        "event_type": "meeting.held",
        "where": {
          "meeting_kind": "board"
        },
        "latest_only": true
      },
      "due": {
        "base": "event_date",
        "offset_days": 120
      },
      "closed_by": {
        "event_type": "meeting.held",
        "where": {
          "meeting_kind": "board"
        },
        "after_trigger": true
      },
      "additional_fee": {
        "basis": "none"
      },
      "severity": "high"
    },
    {
      "id": "BM-NOTICE-7D",
      "kind": "notice",
      "title": "Board meeting notice at least 7 days before",
      "section": "s.173(3), SS-1 para 1.3",
      "applies_to": {
        "class": [
          "*"
        ]
      },
      "trigger": {
        "kind": "event",
        "event_type": "meeting.notice_issued",
        "where": {
          "meeting_kind": "board"
        }
      },
      "check": {
        "kind": "min_gap_days",
        "from_field": "notice_date",
        "to_field": "meeting_date",
        "min_days": 7,
        "unless_field": "shorter_notice_consent_document_id"
      },
      "additional_fee": {
        "basis": "none"
      },
      "severity": "medium"
    },
    {
      "id": "GM-NOTICE-21D",
      "kind": "notice",
      "title": "General meeting notice — 21 clear days",
      "section": "s.101(1), SS-2 para 1.2",
      "applies_to": {
        "class": [
          "*"
        ]
      },
      "trigger": {
        "kind": "event",
        "event_type": "meeting.notice_issued",
        "where": {
          "meeting_kind": [
            "agm",
            "egm"
          ]
        }
      },
      "check": {
        "kind": "min_gap_days",
        "from_field": "notice_date",
        "to_field": "meeting_date",
        "min_days": 23,
        "unless_field": "shorter_notice_consent_document_id",
        "note": "21 clear days = exclude day of service (+2 for post) and day of meeting; Keel uses 23 calendar days as the safe check."
      },
      "additional_fee": {
        "basis": "none"
      },
      "severity": "medium"
    },
    {
      "id": "AGM-ANNUAL",
      "kind": "meeting",
      "title": "Hold Annual General Meeting",
      "section": "s.96(1)",
      "applies_to": {
        "class": [
          "private",
          "small_private",
          "public_unlisted",
          "section8"
        ]
      },
      "trigger": {
        "kind": "periodic",
        "period": "fy"
      },
      "due": {
        "base": "min_of",
        "candidates": [
          {
            "base": "fy_end",
            "offset_days": 0,
            "offset_months": 6
          },
          {
            "base": "last_agm_date",
            "offset_months": 15,
            "if_present": true
          }
        ],
        "first_fy_override": {
          "base": "first_fy_end",
          "offset_months": 9
        }
      },
      "closed_by": {
        "event_type": "meeting.held",
        "where": {
          "meeting_kind": "agm"
        },
        "within_fy_window": true
      },
      "additional_fee": {
        "basis": "none"
      },
      "severity": "critical",
      "note": "OPC exempt (s.96(1)). AGM deadline also becomes the base for AOC-4/MGT-7 when no AGM is held (s.137(2) / s.92(4))."
    },
    {
      "id": "AOC-4",
      "kind": "filing",
      "form": "AOC-4",
      "title": "File financial statements",
      "section": "s.137(1)",
      "applies_to": {
        "class": [
          "*"
        ]
      },
      "trigger": {
        "kind": "periodic",
        "period": "fy"
      },
      "due": {
        "base": "agm_date",
        "fallback": "agm_deadline",
        "offset_days": 30
      },
      "closed_by": {
        "event_type": "filing.recorded",
        "where": {
          "form": [
            "AOC-4",
            "AOC-4 XBRL",
            "AOC-4 CFS"
          ]
        },
        "same_period": true
      },
      "additional_fee": {
        "basis": "per_day_100"
      },
      "severity": "critical",
      "overrides": [
        {
          "when": {
            "class": [
              "opc"
            ]
          },
          "due": {
            "base": "fy_end",
            "offset_days": 180
          },
          "note": "s.137(1) third proviso — OPC: within 180 days of FY close."
        }
      ]
    },
    {
      "id": "MGT-7",
      "kind": "filing",
      "form": "MGT-7",
      "title": "File annual return",
      "section": "s.92(4)",
      "applies_to": {
        "class": [
          "private",
          "public_unlisted",
          "section8"
        ]
      },
      "trigger": {
        "kind": "periodic",
        "period": "fy"
      },
      "due": {
        "base": "agm_date",
        "fallback": "agm_deadline",
        "offset_days": 60
      },
      "closed_by": {
        "event_type": "filing.recorded",
        "where": {
          "form": [
            "MGT-7",
            "MGT-7A"
          ]
        },
        "same_period": true
      },
      "additional_fee": {
        "basis": "per_day_100"
      },
      "severity": "critical",
      "note": "MGT-8 certification is embedded in MGT-7 on V3 for companies with paid-up ≥ ₹10 cr or turnover ≥ ₹50 cr."
    },
    {
      "id": "MGT-7A",
      "kind": "filing",
      "form": "MGT-7A",
      "title": "File abridged annual return (small company / OPC)",
      "section": "s.92(1) proviso, Rule 11(1)",
      "applies_to": {
        "class": [
          "small_private",
          "opc"
        ]
      },
      "trigger": {
        "kind": "periodic",
        "period": "fy"
      },
      "due": {
        "base": "agm_date",
        "fallback": "agm_deadline",
        "offset_days": 60
      },
      "closed_by": {
        "event_type": "filing.recorded",
        "where": {
          "form": [
            "MGT-7A",
            "MGT-7"
          ]
        },
        "same_period": true
      },
      "additional_fee": {
        "basis": "per_day_100"
      },
      "severity": "critical",
      "overrides": [
        {
          "when": {
            "class": [
              "opc"
            ]
          },
          "due": {
            "base": "fy_end",
            "offset_months": 6,
            "offset_days": 60
          },
          "note": "OPC has no AGM; s.92(4) — 60 days from the date on which the AGM should have been held. Keel uses FY end + 6 months + 60 days (≈ 29 Nov)."
        }
      ]
    },
    {
      "id": "ADT-1",
      "kind": "filing",
      "form": "ADT-1",
      "title": "Notice of appointment of auditor",
      "section": "s.139(1), Rule 4(2) Audit & Auditors Rules",
      "applies_to": {
        "class": [
          "*"
        ]
      },
      "trigger": {
        "kind": "event",
        "event_type": "auditor.appointed",
        "where": {
          "kind": [
            "regular",
            "casual_vacancy"
          ]
        }
      },
      "due": {
        "base": "event_date",
        "offset_days": 15
      },
      "closed_by": {
        "event_type": "filing.recorded",
        "where": {
          "form": "ADT-1"
        },
        "linked_to_trigger": true
      },
      "additional_fee": {
        "basis": "slab"
      },
      "severity": "high",
      "note": "First auditor (s.139(6)) — ADT-1 not mandated by the Act, but MCA V3 expects it; Keel raises an 'ask' item instead of a filing item for kind=first."
    },
    {
      "id": "DIR-12",
      "kind": "filing",
      "form": "DIR-12",
      "title": "Particulars of appointment/cessation/change of director or KMP",
      "section": "s.152/s.168/s.170(2), Rule 8 & 18 Appointment Rules",
      "applies_to": {
        "class": [
          "*"
        ]
      },
      "trigger": {
        "kind": "event",
        "event_type": [
          "director.appointed",
          "director.ceased",
          "director.designation_changed",
          "kmp.appointed",
          "kmp.ceased"
        ]
      },
      "due": {
        "base": "event_date",
        "offset_days": 30
      },
      "closed_by": {
        "event_type": "filing.recorded",
        "where": {
          "form": "DIR-12"
        },
        "linked_to_trigger": true
      },
      "additional_fee": {
        "basis": "slab"
      },
      "severity": "high"
    },
    {
      "id": "PAS-3",
      "kind": "filing",
      "form": "PAS-3",
      "title": "Return of allotment",
      "section": "s.39(4)/s.42(8), Rule 12(6) & 14(6) PAS Rules",
      "applies_to": {
        "class": [
          "*"
        ]
      },
      "trigger": {
        "kind": "event",
        "event_type": [
          "shares.allotted",
          "shares.sweat_equity_issued"
        ]
      },
      "due": {
        "base": "event_date",
        "offset_days": 15
      },
      "closed_by": {
        "event_type": "filing.recorded",
        "where": {
          "form": "PAS-3"
        },
        "linked_to_trigger": true
      },
      "additional_fee": {
        "basis": "slab"
      },
      "severity": "high",
      "note": "Private placement: 15 days (Rule 14(6)); other allotments: 30 days (Rule 12(6)). Keel uses the stricter 15 unless payload.kind ∈ {bonus, rights} where 30 applies.",
      "overrides": [
        {
          "when": {
            "payload.kind": [
              "bonus",
              "rights",
              "conversion"
            ]
          },
          "due": {
            "base": "event_date",
            "offset_days": 30
          }
        }
      ]
    },
    {
      "id": "SH-CERT-2M",
      "kind": "internal",
      "title": "Issue share certificates within 2 months of allotment",
      "section": "s.56(4)(b)",
      "applies_to": {
        "class": [
          "*"
        ]
      },
      "trigger": {
        "kind": "event",
        "event_type": "shares.allotted"
      },
      "due": {
        "base": "event_date",
        "offset_months": 2
      },
      "closed_by": {
        "event_type": "shares.certificate_issued",
        "linked_to_trigger": true
      },
      "additional_fee": {
        "basis": "none"
      },
      "severity": "medium"
    },
    {
      "id": "SH-CERT-1M-TRANSFER",
      "kind": "internal",
      "title": "Deliver certificate within 1 month of receipt of transfer instrument",
      "section": "s.56(4)(c)",
      "applies_to": {
        "class": [
          "*"
        ]
      },
      "trigger": {
        "kind": "event",
        "event_type": "shares.transferred"
      },
      "due": {
        "base": "event_date",
        "offset_months": 1
      },
      "closed_by": {
        "event_type": "shares.certificate_issued",
        "linked_to_trigger": true
      },
      "additional_fee": {
        "basis": "none"
      },
      "severity": "medium"
    },
    {
      "id": "MGT1-ENTRY-7D",
      "kind": "register_update",
      "title": "Enter allotment/transfer in register of members within 7 days of board approval",
      "section": "Rule 5(1) M&A Rules",
      "applies_to": {
        "class": [
          "*"
        ]
      },
      "trigger": {
        "kind": "event",
        "event_type": [
          "shares.allotted",
          "shares.transferred",
          "shares.transmitted",
          "member.admitted"
        ]
      },
      "due": {
        "base": "event_date",
        "offset_days": 7
      },
      "closed_by": {
        "self": true,
        "late_if_recorded_after_due": true
      },
      "additional_fee": {
        "basis": "none"
      },
      "severity": "medium",
      "note": "The event itself is the entry. Keel flags it 'entered late' if recorded_at > due; the flag is permanent and printed."
    },
    {
      "id": "MGT-14",
      "kind": "filing",
      "form": "MGT-14",
      "title": "File resolution/agreement with ROC",
      "section": "s.117(1)",
      "applies_to": {
        "class": [
          "*"
        ]
      },
      "trigger": {
        "kind": "event",
        "event_type": [
          "meeting.resolution_passed",
          "meeting.resolution_by_circulation"
        ],
        "where": {
          "requires_mgt14": true
        }
      },
      "due": {
        "base": "event_date",
        "offset_days": 30
      },
      "closed_by": {
        "event_type": "filing.recorded",
        "where": {
          "form": "MGT-14"
        },
        "linked_to_trigger": true
      },
      "additional_fee": {
        "basis": "slab"
      },
      "severity": "high",
      "note": "All special resolutions; board resolutions under s.179(3) are exempt for private companies (Notification GSR 464(E) 5 Jun 2015). requires_mgt14 defaults: kind=special → true; kind=board → false for private unless section_reference in s.117(3) non-exempt list."
    },
    {
      "id": "CHG-1",
      "kind": "filing",
      "form": "CHG-1",
      "title": "Register creation/modification of charge",
      "section": "s.77(1), s.78",
      "applies_to": {
        "class": [
          "*"
        ]
      },
      "trigger": {
        "kind": "event",
        "event_type": "charge.created"
      },
      "due": {
        "base": "event_date",
        "offset_days": 30
      },
      "extensions": [
        {
          "upto_days": 60,
          "fee_basis": "ad_valorem",
          "note": "s.77(1) first proviso — within further 30 days with additional fee (ad valorem)"
        },
        {
          "upto_days": 120,
          "fee_basis": "ad_valorem_double",
          "note": "second proviso — further 60 days with ad valorem fee; beyond this, condonation (s.87) not available for creation"
        }
      ],
      "closed_by": {
        "event_type": "filing.recorded",
        "where": {
          "form": [
            "CHG-1",
            "CHG-9"
          ]
        },
        "linked_to_trigger": true
      },
      "additional_fee": {
        "basis": "ad_valorem",
        "note": "Keel shows 'ad valorem — see Rule 12(3)' rather than a number."
      },
      "severity": "critical"
    },
    {
      "id": "CHG-4",
      "kind": "filing",
      "form": "CHG-4",
      "title": "Satisfaction of charge",
      "section": "s.82(1)",
      "applies_to": {
        "class": [
          "*"
        ]
      },
      "trigger": {
        "kind": "event",
        "event_type": "charge.satisfied"
      },
      "due": {
        "base": "event_date",
        "offset_days": 30
      },
      "extensions": [
        {
          "upto_days": 300,
          "fee_basis": "slab",
          "note": "s.82(1) proviso — within 300 days with additional fee"
        }
      ],
      "closed_by": {
        "event_type": "filing.recorded",
        "where": {
          "form": "CHG-4"
        },
        "linked_to_trigger": true
      },
      "additional_fee": {
        "basis": "slab"
      },
      "severity": "high"
    },
    {
      "id": "BEN-2",
      "kind": "filing",
      "form": "BEN-2",
      "title": "Return of significant beneficial owner",
      "section": "s.90(4), Rule 4 SBO Rules",
      "applies_to": {
        "class": [
          "*"
        ]
      },
      "trigger": {
        "kind": "event",
        "event_type": "sbo.declaration_received"
      },
      "due": {
        "base": "event_date",
        "offset_days": 30
      },
      "closed_by": {
        "event_type": "filing.recorded",
        "where": {
          "form": "BEN-2"
        },
        "linked_to_trigger": true
      },
      "additional_fee": {
        "basis": "slab"
      },
      "severity": "high"
    },
    {
      "id": "DPT-3",
      "kind": "filing",
      "form": "DPT-3",
      "title": "Return of deposits / particulars of transactions not considered deposits",
      "section": "Rule 16 & 16A Acceptance of Deposits Rules",
      "applies_to": {
        "class": [
          "*"
        ],
        "only_if": {
          "accepts_deposits_or_loans": true
        }
      },
      "trigger": {
        "kind": "periodic",
        "period": "fy"
      },
      "due": {
        "base": "fixed_date",
        "month": 6,
        "day": 30,
        "after": "fy_end"
      },
      "closed_by": {
        "event_type": "filing.recorded",
        "where": {
          "form": "DPT-3"
        },
        "same_period": true
      },
      "additional_fee": {
        "basis": "slab"
      },
      "severity": "high",
      "note": "If accepts_deposits_or_loans is null the engine emits an 'ask' item instead."
    },
    {
      "id": "MSME-1",
      "kind": "filing",
      "form": "MSME-1",
      "title": "Half-yearly return of outstanding dues to MSME suppliers > 45 days",
      "section": "s.405 + MSME Order 2019",
      "applies_to": {
        "class": [
          "*"
        ],
        "only_if": {
          "has_msme_dues_over_45_days": true
        }
      },
      "trigger": {
        "kind": "periodic",
        "period": "fy_half"
      },
      "due": {
        "base": "period_end",
        "offset_days": 30,
        "note": "Apr–Sep → 31 Oct; Oct–Mar → 30 Apr"
      },
      "closed_by": {
        "event_type": "filing.recorded",
        "where": {
          "form": "MSME-1"
        },
        "same_period": true
      },
      "additional_fee": {
        "basis": "slab"
      },
      "severity": "medium"
    },
    {
      "id": "DIR-3-KYC",
      "kind": "filing",
      "form": "DIR-3 KYC",
      "title": "Director KYC for every DIN holder",
      "section": "Rule 12A Appointment & Qualification of Directors Rules",
      "applies_to": {
        "class": [
          "*"
        ]
      },
      "trigger": {
        "kind": "periodic",
        "period": "fy",
        "per": "director"
      },
      "due": {
        "base": "fixed_date",
        "month": 9,
        "day": 30,
        "after": "fy_end"
      },
      "periodicity": {
        "$comment": "VERIFY: 2026 amendment moved KYC to once in three years unless particulars change, effective 31 Mar 2026. Until reviewers confirm, Keel keeps annual and marks the item 'verify periodicity'.",
        "every_years": 1,
        "flag": "verify_periodicity"
      },
      "closed_by": {
        "event_type": "director.kyc_recorded",
        "same_period": true,
        "per": "director"
      },
      "additional_fee": {
        "basis": "fixed",
        "amount": 5000,
        "note": "DIN deactivated; ₹5,000 to reactivate"
      },
      "severity": "high"
    },
    {
      "id": "PAS-6",
      "kind": "filing",
      "form": "PAS-6",
      "title": "Reconciliation of share capital audit report (demat)",
      "section": "Rule 9A(8)/9B PAS Rules",
      "applies_to": {
        "class": [
          "private",
          "public_unlisted"
        ],
        "only_if": {
          "shares_in_demat": true
        }
      },
      "trigger": {
        "kind": "periodic",
        "period": "fy_half"
      },
      "due": {
        "base": "period_end",
        "offset_days": 60
      },
      "closed_by": {
        "event_type": "filing.recorded",
        "where": {
          "form": "PAS-6"
        },
        "same_period": true
      },
      "additional_fee": {
        "basis": "slab"
      },
      "severity": "medium",
      "note": "Small companies exempt from Rule 9B. If shares_in_demat is null → 'ask' item."
    },
    {
      "id": "MINUTES-30D",
      "kind": "minutes",
      "title": "Enter minutes in minute book within 30 days of meeting",
      "section": "s.118(1), SS-1 7.5 / SS-2 17.5",
      "applies_to": {
        "class": [
          "*"
        ]
      },
      "trigger": {
        "kind": "event",
        "event_type": "meeting.held"
      },
      "due": {
        "base": "event_date",
        "offset_days": 30
      },
      "closed_by": {
        "event_type": "minutes.entered",
        "linked_to_trigger": true,
        "link_field": "meeting_event_id"
      },
      "additional_fee": {
        "basis": "none"
      },
      "severity": "high",
      "note": "s.118(11): ₹25,000 company + ₹5,000 every officer in default. Futurense (ROC Delhi, Jun 2026): subsequent rectification does not absolve."
    },
    {
      "id": "MINUTES-SIGN-30D",
      "kind": "minutes",
      "title": "Minutes signed by chairman",
      "section": "SS-1 7.6 (board) / SS-2 17.3 (general)",
      "applies_to": {
        "class": [
          "*"
        ]
      },
      "trigger": {
        "kind": "event",
        "event_type": "meeting.held"
      },
      "due": {
        "base": "event_date",
        "offset_days": 30
      },
      "closed_by": {
        "event_type": "minutes.signed",
        "linked_to_trigger": true,
        "link_field": "meeting_event_id"
      },
      "additional_fee": {
        "basis": "none"
      },
      "severity": "medium",
      "note": "Counted from the meeting; closed by the signed minutes that name the meeting. Board minutes may be signed by the chair of the next meeting; the 30-day clock is a planner default."
    },
    {
      "id": "MBP1-ANNUAL",
      "kind": "internal",
      "title": "MBP-1 disclosure of interest from every director at first board meeting of FY",
      "section": "s.184(1), Rule 9(1) MBP Rules",
      "applies_to": {
        "class": [
          "*"
        ]
      },
      "trigger": {
        "kind": "periodic",
        "period": "fy",
        "per": "director"
      },
      "due": {
        "base": "first_bm_of_fy",
        "fallback": {
          "base": "fy_start",
          "offset_days": 30
        }
      },
      "closed_by": {
        "event_type": "director.disclosure_received",
        "where": {
          "form": "MBP-1"
        },
        "same_period": true,
        "per": "director"
      },
      "additional_fee": {
        "basis": "none"
      },
      "severity": "medium"
    },
    {
      "id": "SH-11",
      "kind": "filing",
      "form": "SH-11",
      "title": "Return of buy-back",
      "section": "s.68(10), Rule 17(13)",
      "applies_to": {
        "class": [
          "*"
        ]
      },
      "trigger": {
        "kind": "event",
        "event_type": "shares.buyback"
      },
      "due": {
        "base": "event_date",
        "offset_days": 30
      },
      "closed_by": {
        "event_type": "filing.recorded",
        "where": {
          "form": "SH-11"
        },
        "linked_to_trigger": true
      },
      "additional_fee": {
        "basis": "slab"
      },
      "severity": "high"
    }
  ]
}