---
title: "Find every least-worst-regret repair-hardening profile"
method: POST
path: "/api/astro/electional-criterion-repair-hardening-regret-audit"
tags: ["Calculations"]
---

# Find every least-worst-regret repair-hardening profile

`POST /api/astro/electional-criterion-repair-hardening-regret-audit`

## Request

- Base URL: `https://api.cosmicephemeris.com`
- URL: `https://api.cosmicephemeris.com/api/astro/electional-criterion-repair-hardening-regret-audit`
- Auth: one of:
  - HTTP bearer
  - API key in header `x-api-key`

Extends the exact hardening-profile hierarchy with weight-free minimax regret across every analyzed simultaneous repair-failure budget. For each budget it returns the best observed avoided loss and every tied benchmark profile; for each profile it returns exact integer regret and witnesses, its worst regret, and every budget attaining it. All least-maximum-regret ties are returned. At most 70 profiles, four failure budgets, 280 profile-budget regret cells, and 19,600 benchmark references are admitted. Results are exact for returned sampled evidence and assign no budget probabilities, weights, floating-point scores, rankings, recommendations, interpretations, predictions, or statistical confidence. No licensed catalog, new dependency, or request-time network source is used. One standard quota unit per admitted request; failed or timed-out admitted attempts are not refunded. Do not automatically retry.
Historical mode uses an explicit BCE/CE date object and UT1 conventions. Its response is the versioned historical envelope, not the modern UTC envelope. Read result for calculation fields and metadata for limits and uncertainty.

## Headers

- `X-Cosmic-Ephemeris-Receipt` 'v1'

## Request body

- union
  - ElectionalCriterionRepairHardeningRegretAuditRequest
    - `start_utc` string, date-time, required
    - `end_utc` string, date-time, required
    - `location` GeographicLocation, required: Geographic coordinates in decimal degrees. The server rejects exactly -90 and +90 latitude because angles and houses are undefined at the poles.
      - `lat` union, required: WGS84 decimal latitude. JSON numbers are recommended; numeric strings are accepted by the current engine, then checked for finiteness/range. Exact poles and undefined Ascendant geometry return 400; supported successful latitude is strictly between -90 and 90. Boolean/null/object/array coordinates are invalid.
        - number
        - string
      - `lon` union, required: WGS84 decimal longitude, east positive, within [-180,180]. JSON numbers are recommended; numeric strings are accepted then checked for finiteness/range.
        - number
        - string
    - `profile` union, required
      - object
        - `zodiac` 'tropical', required
      - object
        - `zodiac` 'sidereal', required
        - `ayanamsa` 'lahiri' | 'raman' | 'krishnamurti' | 'fagan_bradley' | 'yukteshwar' | 'sassanian' | 'true_chitra' | 'true_revati' | 'true_pushya' | 'galactic_center_0_sagittarius' | 'galactic_alignment_mardyks', required
    - `filters` ElectionalFilters, required
      - `moon_signs` ElectionalSignName[]
      - `moon_phase_sectors` MoonPhaseSector[]
      - `mercury_motion` 'direct' | 'retrograde'
      - `ascendant_signs` ElectionalSignName[]
      - `aspects` ElectionalAspectFilter[]
        - `body_a` 'sun' | 'moon' | 'mercury' | 'venus' | 'mars' | 'jupiter' | 'saturn' | 'uranus' | 'neptune' | 'pluto', required
        - `body_b` 'sun' | 'moon' | 'mercury' | 'venus' | 'mars' | 'jupiter' | 'saturn' | 'uranus' | 'neptune' | 'pluto', required
        - `aspect` 'conjunction' | 'sextile' | 'square' | 'trine' | 'opposition', required
        - `max_orb_degrees` number, required
  - HistoricalElectionalCriterionRepairHardeningRegretAuditRequest: Explicit historical mode, 1000 BCE (BC)–2500 CE (AD). No year zero, implicit calendar, UTC or IANA zone. Preserve tool-specific mathematical, geographic and search limits; calendar/time conventions and estimated Delta-T are not certified historical accuracy.
    - `location` object, required: Geographic coordinates in decimal degrees. The server rejects exactly -90 and +90 latitude because angles and houses are undefined at the poles.
      - `lat` union, required: WGS84 decimal latitude. JSON numbers are recommended; numeric strings are accepted by the current engine, then checked for finiteness/range. Exact poles and undefined Ascendant geometry return 400; supported successful latitude is strictly between -90 and 90. Boolean/null/object/array coordinates are invalid.
        - number
        - string
      - `lon` union, required: WGS84 decimal longitude, east positive, within [-180,180]. JSON numbers are recommended; numeric strings are accepted then checked for finiteness/range.
        - number
        - string
    - `profile` union, required
      - object
        - `zodiac` 'tropical', required
      - object
        - `zodiac` 'sidereal', required
        - `ayanamsa` 'lahiri' | 'raman' | 'krishnamurti' | 'fagan_bradley' | 'yukteshwar' | 'sassanian' | 'true_chitra' | 'true_revati' | 'true_pushya' | 'galactic_center_0_sagittarius' | 'galactic_alignment_mardyks', required
    - `filters` object, required
      - `moon_signs` string[]
      - `moon_phase_sectors` string[]
      - `mercury_motion` 'direct' | 'retrograde'
      - `ascendant_signs` string[]
      - `aspects` object[]
        - `body_a` 'sun' | 'moon' | 'mercury' | 'venus' | 'mars' | 'jupiter' | 'saturn' | 'uranus' | 'neptune' | 'pluto', required
        - `body_b` 'sun' | 'moon' | 'mercury' | 'venus' | 'mars' | 'jupiter' | 'saturn' | 'uranus' | 'neptune' | 'pluto', required
        - `aspect` 'conjunction' | 'sextile' | 'square' | 'trine' | 'opposition', required
        - `max_orb_degrees` number, required
    - `start` HistoricalDateTime, required: Shared historical input contract; parsing alone does not enable a calculation route. Derived calculation records can include fractional seconds and are not this input type.
      - `date` HistoricalDate, required: Explicit civil date, 1000 BCE (BC)–2500 CE (AD); no year zero. Calendar validity is checked by the server. Available only on documented connected historical operations, with explicit UT1/fixed-offset conventions.
        - `year` integer, required
        - `era` 'BCE' | 'CE', required: Display BCE (BC) / CE (AD); API values remain BCE / CE. No year zero.
        - `month` integer, required
        - `day` integer, required
        - `calendar` 'proleptic_gregorian' | 'proleptic_julian', required: Explicit choice; applies the selected calendar rules throughout history without a regional adoption switch.
      - `time` string, required: Explicit HH:MM[:SS]; whole seconds only, no leap seconds. Normalized helper output includes seconds.
      - `timezone` string, required: Explicit UT1 or fixed offset UT1+/-HH:MM[:SS], within 14 hours. Local clock minus offset yields UT1, not UTC. No IANA timezone inference. Original offset spelling is preserved.
    - `end` HistoricalDateTime, required: Shared historical input contract; parsing alone does not enable a calculation route. Derived calculation records can include fractional seconds and are not this input type.
      - `date` HistoricalDate, required: Explicit civil date, 1000 BCE (BC)–2500 CE (AD); no year zero. Calendar validity is checked by the server. Available only on documented connected historical operations, with explicit UT1/fixed-offset conventions.
        - `year` integer, required
        - `era` 'BCE' | 'CE', required: Display BCE (BC) / CE (AD); API values remain BCE / CE. No year zero.
        - `month` integer, required
        - `day` integer, required
        - `calendar` 'proleptic_gregorian' | 'proleptic_julian', required: Explicit choice; applies the selected calendar rules throughout history without a regional adoption switch.
      - `time` string, required: Explicit HH:MM[:SS]; whole seconds only, no leap seconds. Normalized helper output includes seconds.
      - `timezone` string, required: Explicit UT1 or fixed offset UT1+/-HH:MM[:SS], within 14 hours. Local clock minus offset yields UT1, not UTC. No IANA timezone inference. Original offset spelling is preserved.

## Response `200`

Exact bounded minimax-regret audit over hardening profiles

- union
  - ElectionalCriterionRepairHardeningRegretAuditResponse
    - `type` 'electional_criterion_repair_hardening_regret_audit', required
    - `status` Status, required (unresolved $ref)
    - `input` ElectionalCriterionRepairHardeningRegretAuditRequest, required
      - `start_utc` string, date-time, required
      - `end_utc` string, date-time, required
      - `location` GeographicLocation, required: Geographic coordinates in decimal degrees. The server rejects exactly -90 and +90 latitude because angles and houses are undefined at the poles.
        - `lat` union, required: WGS84 decimal latitude. JSON numbers are recommended; numeric strings are accepted by the current engine, then checked for finiteness/range. Exact poles and undefined Ascendant geometry return 400; supported successful latitude is strictly between -90 and 90. Boolean/null/object/array coordinates are invalid.
          - number
          - string
        - `lon` union, required: WGS84 decimal longitude, east positive, within [-180,180]. JSON numbers are recommended; numeric strings are accepted then checked for finiteness/range.
          - number
          - string
      - `profile` union, required
        - object
          - `zodiac` 'tropical', required
        - object
          - `zodiac` 'sidereal', required
          - `ayanamsa` 'lahiri' | 'raman' | 'krishnamurti' | 'fagan_bradley' | 'yukteshwar' | 'sassanian' | 'true_chitra' | 'true_revati' | 'true_pushya' | 'galactic_center_0_sagittarius' | 'galactic_alignment_mardyks', required
      - `filters` ElectionalFilters, required
        - `moon_signs` ElectionalSignName[]
        - `moon_phase_sectors` MoonPhaseSector[]
        - `mercury_motion` 'direct' | 'retrograde'
        - `ascendant_signs` ElectionalSignName[]
        - `aspects` ElectionalAspectFilter[]
          - `body_a` 'sun' | 'moon' | 'mercury' | 'venus' | 'mars' | 'jupiter' | 'saturn' | 'uranus' | 'neptune' | 'pluto', required
          - `body_b` 'sun' | 'moon' | 'mercury' | 'venus' | 'mars' | 'jupiter' | 'saturn' | 'uranus' | 'neptune' | 'pluto', required
          - `aspect` 'conjunction' | 'sextile' | 'square' | 'trine' | 'opposition', required
          - `max_orb_degrees` number, required
    - `damage_status` DamageStatus, required (unresolved $ref)
    - `hardening_status` HardeningStatus, required (unresolved $ref)
    - `pareto_status` ParetoStatus, required (unresolved $ref)
    - `hierarchy_status` HierarchyStatus, required (unresolved $ref)
    - `criteria` Criteria, required (unresolved $ref)
    - `samples` Samples, required (unresolved $ref)
    - `grids` Grids, required (unresolved $ref)
    - `repairs` Repairs, required (unresolved $ref)
    - `hierarchy_nodes` HierarchyNodes, required (unresolved $ref)
    - `containments` Containments, required (unresolved $ref)
    - `minimal_repair_ids` MinimalRepairIds, required (unresolved $ref)
    - `maximal_repair_ids` MaximalRepairIds, required (unresolved $ref)
    - `maximum_antichain_repair_ids` MaximumAntichainRepairIds, required (unresolved $ref)
    - `minimum_chain_cover` MinimumChainCover, required (unresolved $ref)
    - `longest_chain_repair_ids` LongestChainRepairIds, required (unresolved $ref)
    - `coverage_status` CoverageStatus, required (unresolved $ref)
    - `coverage_groups` CoverageGroups, required (unresolved $ref)
    - `repair_coverage` RepairCoverage, required (unresolved $ref)
    - `coverage_multiplicity_histogram` CoverageMultiplicityHistogram, required (unresolved $ref)
    - `resilience_status` ResilienceStatus, required (unresolved $ref)
    - `minimal_failure_coalitions` MinimalFailureCoalitions, required (unresolved $ref)
    - `repair_loss_resilience_curve` RepairLossResilienceCurve, required (unresolved $ref)
    - `coverage_summary` CoverageSummary, required (unresolved $ref)
    - `coverage_metadata` CoverageMetadata, required (unresolved $ref)
    - `repair_loss_damage_frontier` RepairLossDamageFrontier, required (unresolved $ref)
    - `resilience_summary` ResilienceSummary, required (unresolved $ref)
    - `resilience_metadata` ResilienceMetadata, required (unresolved $ref)
    - `repair_hardening_candidates` RepairHardeningCandidates, required (unresolved $ref)
    - `damage_summary` DamageSummary, required (unresolved $ref)
    - `damage_metadata` DamageMetadata, required (unresolved $ref)
    - `hardening_profiles` HardeningProfiles, required (unresolved $ref)
    - `hardening_pair_relations` HardeningPairRelations, required (unresolved $ref)
    - `hardening_candidate_relations` HardeningCandidateRelations, required (unresolved $ref)
    - `hardening_summary` HardeningSummary, required (unresolved $ref)
    - `hardening_metadata` HardeningMetadata, required (unresolved $ref)
    - `hardening_hierarchy_nodes` HardeningHierarchyNodes, required (unresolved $ref)
    - `hardening_profile_dominances` HardeningProfileDominances, required (unresolved $ref)
    - `pareto_layers` ParetoLayers, required (unresolved $ref)
    - `maximum_antichain_hardening_profile_ids` MaximumAntichainHardeningProfileIds, required (unresolved $ref)
    - `minimum_hardening_profile_chain_cover` MinimumHardeningProfileChainCover, required (unresolved $ref)
    - `longest_dominance_chain_hardening_profile_ids` LongestDominanceChainHardeningProfileIds, required (unresolved $ref)
    - `pareto_summary` ParetoSummary, required (unresolved $ref)
    - `pareto_metadata` ParetoMetadata, required (unresolved $ref)
    - `fallback` Fallback, required (unresolved $ref)
    - `regret_status` 'indeterminate_no_evaluable_samples' | 'indeterminate_incomplete_grid_evidence' | 'no_relaxation_required' | 'no_new_repair_consequences_observed' | 'no_hardening_profiles_available' | 'zero_maximum_regret_hardening_profile_observed' | 'positive_minimax_regret_hardening_profiles_observed', required
    - `hardening_budget_benchmarks` ElectionalCriterionRepairHardeningBudgetBenchmark[], required
      - `unavailable_repair_count` integer, required
      - `maximum_avoided_worst_case_observation_count` integer, required
      - `best_hardening_profile_ids` string[], required
      - `best_hardening_profile_count` integer, required
    - `hardening_profile_regrets` ElectionalCriterionRepairHardeningProfileRegret[], required
      - `hardening_profile_id` string, required
      - `repair_ids` string[], required
      - `regret_by_failure_budget` ElectionalCriterionRepairHardeningBudgetRegret[], required
        - `unavailable_repair_count` integer, required
        - `profile_avoided_worst_case_observation_count` integer, required
        - `budget_best_avoided_worst_case_observation_count` integer, required
        - `regret_observation_count` integer, required
        - `benchmark_hardening_profile_ids` string[], required
        - `first_benchmark_hardening_profile_id` string, nullable, required
      - `maximum_regret_observation_count` integer, required
      - `maximum_regret_failure_budgets` integer[], required
      - `zero_regret_on_every_analyzed_failure_budget` boolean, required
      - `minimax_regret` boolean, required
    - `minimax_regret_hardening_profile_ids` string[], required
    - `hierarchy_summary` Summary, required (unresolved $ref)
    - `hierarchy_metadata` Metadata, required (unresolved $ref)
    - `summary` object, required
      - `returned_hardening_profile_count` integer, required
      - `returned_failure_budget_benchmark_count` integer, required
      - `returned_profile_budget_regret_count` integer, required
      - `returned_benchmark_profile_reference_count` integer, required
      - `evaluated_profile_budget_comparison_count` integer, required
      - `minimax_regret_observation_count` integer, nullable, required
      - `minimax_regret_hardening_profile_count` integer, required
      - `all_minimax_regret_ties_returned` unknown, required
      - `budget_benchmarks_reconcile_profile_maxima` unknown, required
      - `regret_counts_nonnegative_verified` unknown, required
    - `metadata` object, required
      - `model` 'cosmicephemeris-electional-criterion-repair-hardening-regret-audit-v1', required
      - `ephemeris` 'JPL-DE440', required
      - `maximum_interval_days` unknown, required
      - `maximum_chart_evaluations` unknown, required
      - `maximum_criterion_count` unknown, required
      - `maximum_hardening_profile_count` unknown, required
      - `maximum_failure_budget_count` unknown, required
      - `maximum_profile_budget_regret_count` unknown, required
      - `maximum_benchmark_profile_reference_count` unknown, required
      - `regret_definition` 'budget_best_avoided_worst_case_observation_count_minus_profile_avoided_worst_case_observation_count', required
      - `optimization_objective` 'minimize_maximum_exact_regret_observation_count_across_all_analyzed_failure_budgets', required
      - `failure_budget_uncertainty_model` 'no_probability_or_weight_assigned_to_any_analyzed_budget', required
      - `all_minimax_ties_returned` unknown, required
      - `equivalent_candidates_collapsed_to_profiles` unknown, required
      - `exact_integer_counts_used` unknown, required
      - `weights_applied` unknown, required
      - `probabilities_assigned` unknown, required
      - `floating_point_comparison` unknown, required
      - `repairs_ranked` unknown, required
      - `chart_recalculation_for_regret_analysis` unknown, required
      - `continuous_time_guarantee` unknown, required
      - `causal_hardening_claim` unknown, required
      - `recommendations` unknown, required
      - `interpretations` unknown, required
      - `predictions` unknown, required
      - `statistical_confidence` unknown, required
      - `request_time_network` unknown, required
    - `receipt` CalculationReceipt
      - `schema` 'cosmicephemeris-calculation-receipt-v1', required
      - `kid` string, required
      - `algorithm` 'Ed25519', required
      - `canonicalization` 'cosmicephemeris-canonical-data-v1', required
      - `input_normalization` 'public-request-canonical-data-v1', required
      - `route` string, required
      - `release` string, required
      - `issued_at` string, date-time, required
      - `normalized_input_sha256` string, required
      - `result_sha256` string, required
      - `calculation_profile` object, required
      - `service_dataset_versions` object, required
      - `calculation_fingerprint` string, required
      - `verification_uri` string, required
      - `signature` string, required
  - HistoricalElectionalCriterionRepairHardeningRegretAuditElectionalCriterionRepairHardeningRegretAuditResponse
    - `schema` 'cosmicephemeris-historical-calculation-v1', required
    - `status` 'historical', required
    - `type` 'electional-criterion-repair-hardening-regret-audit', required
    - `input` HistoricalElectionalCriterionRepairHardeningRegretAuditRequest, required: Explicit historical mode, 1000 BCE (BC)–2500 CE (AD). No year zero, implicit calendar, UTC or IANA zone. Preserve tool-specific mathematical, geographic and search limits; calendar/time conventions and estimated Delta-T are not certified historical accuracy.
      - `location` object, required: Geographic coordinates in decimal degrees. The server rejects exactly -90 and +90 latitude because angles and houses are undefined at the poles.
        - `lat` union, required: WGS84 decimal latitude. JSON numbers are recommended; numeric strings are accepted by the current engine, then checked for finiteness/range. Exact poles and undefined Ascendant geometry return 400; supported successful latitude is strictly between -90 and 90. Boolean/null/object/array coordinates are invalid.
          - number
          - string
        - `lon` union, required: WGS84 decimal longitude, east positive, within [-180,180]. JSON numbers are recommended; numeric strings are accepted then checked for finiteness/range.
          - number
          - string
      - `profile` union, required
        - object
          - `zodiac` 'tropical', required
        - object
          - `zodiac` 'sidereal', required
          - `ayanamsa` 'lahiri' | 'raman' | 'krishnamurti' | 'fagan_bradley' | 'yukteshwar' | 'sassanian' | 'true_chitra' | 'true_revati' | 'true_pushya' | 'galactic_center_0_sagittarius' | 'galactic_alignment_mardyks', required
      - `filters` object, required
        - `moon_signs` string[]
        - `moon_phase_sectors` string[]
        - `mercury_motion` 'direct' | 'retrograde'
        - `ascendant_signs` string[]
        - `aspects` object[]
          - `body_a` 'sun' | 'moon' | 'mercury' | 'venus' | 'mars' | 'jupiter' | 'saturn' | 'uranus' | 'neptune' | 'pluto', required
          - `body_b` 'sun' | 'moon' | 'mercury' | 'venus' | 'mars' | 'jupiter' | 'saturn' | 'uranus' | 'neptune' | 'pluto', required
          - `aspect` 'conjunction' | 'sextile' | 'square' | 'trine' | 'opposition', required
          - `max_orb_degrees` number, required
      - `start` HistoricalDateTime, required: Shared historical input contract; parsing alone does not enable a calculation route. Derived calculation records can include fractional seconds and are not this input type.
        - `date` HistoricalDate, required: Explicit civil date, 1000 BCE (BC)–2500 CE (AD); no year zero. Calendar validity is checked by the server. Available only on documented connected historical operations, with explicit UT1/fixed-offset conventions.
          - `year` integer, required
          - `era` 'BCE' | 'CE', required: Display BCE (BC) / CE (AD); API values remain BCE / CE. No year zero.
          - `month` integer, required
          - `day` integer, required
          - `calendar` 'proleptic_gregorian' | 'proleptic_julian', required: Explicit choice; applies the selected calendar rules throughout history without a regional adoption switch.
        - `time` string, required: Explicit HH:MM[:SS]; whole seconds only, no leap seconds. Normalized helper output includes seconds.
        - `timezone` string, required: Explicit UT1 or fixed offset UT1+/-HH:MM[:SS], within 14 hours. Local clock minus offset yields UT1, not UTC. No IANA timezone inference. Original offset spelling is preserved.
      - `end` HistoricalDateTime, required: Shared historical input contract; parsing alone does not enable a calculation route. Derived calculation records can include fractional seconds and are not this input type.
        - `date` HistoricalDate, required: Explicit civil date, 1000 BCE (BC)–2500 CE (AD); no year zero. Calendar validity is checked by the server. Available only on documented connected historical operations, with explicit UT1/fixed-offset conventions.
          - `year` integer, required
          - `era` 'BCE' | 'CE', required: Display BCE (BC) / CE (AD); API values remain BCE / CE. No year zero.
          - `month` integer, required
          - `day` integer, required
          - `calendar` 'proleptic_gregorian' | 'proleptic_julian', required: Explicit choice; applies the selected calendar rules throughout history without a regional adoption switch.
        - `time` string, required: Explicit HH:MM[:SS]; whole seconds only, no leap seconds. Normalized helper output includes seconds.
        - `timezone` string, required: Explicit UT1 or fixed offset UT1+/-HH:MM[:SS], within 14 hours. Local clock minus offset yields UT1, not UTC. No IANA timezone inference. Original offset spelling is preserved.
    - `result` object, required: Complete historical calculation adapter result. Times are explicit UT1 date records, never UTC strings; derived times may include fractional seconds and years outside the input range.
    - `metadata` object, required
      - `time_standard` 'UT1', required
      - `historical_accuracy_certified` unknown, required
      - `warnings` string[], required

## Other responses

- `400`: Invalid request, malformed JSON, out-of-range date/location, unknown model, invalid timezone or ambiguous/nonexistent clock-change time. Invalid attempts reaching quota reservation consume one unit.
- `401`: Missing, invalid, revoked API key or unavailable activated key owner. Dashboard cookies do not authenticate calculation routes.
- `403`: Origin not allowed by production CORS policy. Server-to-server requests can omit Origin.
- `429`: Monthly quota exhausted, per-user two-request concurrency reached, or nginx rate/connection admission refused. Retry-After: 2 is sent for application per-user concurrency only, not a promise that monthly quota resets in two seconds.
- `502`: Engine unavailable, unsuccessful internal server response or invalid upstream JSON. No engine internals are exposed.
- `503`: Four-request global calculation pool full (Retry-After: 2), maintenance or upstream service unavailable.
- `504`: Application engine timeout: 15 seconds normally; planetary events, house ingresses, aspect windows, event calendar, eclipse geometry, electional search, and event-rule search use 30 seconds; Nakshatra Timeline plus the explicitly enumerated readiness, robustness, location, uncertainty, and electional-audit family use 60 seconds. Timer includes response-body parsing; an admitted timeout consumes quota.

---

[API](https://skmtc.dev/cosmicephemeris/apis/cosmic-ephemeris-calculation-api.md) · [All operations](https://skmtc.dev/cosmicephemeris/apis/cosmic-ephemeris-calculation-api/llms.txt) · [OpenAPI document](https://skmtc.dev/cosmicephemeris/apis/cosmic-ephemeris-calculation-api/revisions/f041e924cea3?raw)
