Most astrology software takes your chart, finds the aspects, and writes about them. The text is the product; the numbers, where they exist at all, are decoration.
Cosmic KPI™ is built the other way around: it computes a measured quantity from the sky, publishes the measurement, and only then reads it. The reading is derived from the number. The number is never derived from the reading.
This page is the operating model behind the name — what gets measured, how, what we guarantee about it, and where the measurement honestly ends.
A measured timing signal, read against your own chart.
A Key Planetary Indicator is a measured timing signal, derived from real planetary motion and read against your own birth chart. Where a business dashboard tracks key performance indicators, Cosmic KPI tracks the sky.
Each one has a stated definition, a stated span and a stated scale, and no two of them share a name. That last part sounds trivial and isn’t: most of the confusion in astrological software comes from one word covering several different measurements.
An indicator never claims to know what will happen. It tells you when a particular symbolic theme is getting louder, when it is exact, and when it lets go.
What that means for your life is yours to decide. The instrument’s job is to be right about the sky and honest about everything else.
Every view is a lens on the same records, not regenerated prose.
The name describes how the software is built. Every surface in Cosmic KPI — the Transit Terminal, the Transit Pressure chart, the forecast feed, the Calendar, Life Cycles, the Notebook — reads from the same underlying set of indicators.
Not from prose generated fresh for each user. Not from a language model improvising a paragraph. From one deterministic dataset.
Positions come from Skyfield computing on NASA JPL’s DE440 ephemeris. A deterministic analysis layer turns them into scored, dated series. Every view is a different lens on that one dataset.
This is what keeps the platform coherent, and it’s a stronger guarantee than it sounds: the event you see on the Calendar is the same record you inspect in the terminal, note against, and look up in Research — not a version of it, not a regenerated approximation, but the same record, with the same identity, every time you come back to it.
Structure is what lets you rank, chart, filter and check a transit.
Astrology’s raw material is symbolic: planets, signs, aspects, houses. Cosmic KPI operationalizes it. A transit stops being a sentence in a horoscope and becomes a measured series:
Once a timing signal has structure, you can do things with it that you simply cannot do with a paragraph: rank it, chart it, filter it, put it on a calendar, compare it against another one, and check it against what actually happened.
Every published indicator, the question it answers, and its scale.
This is the full set of measured quantities the product publishes, each with the question it answers and the scale it lives on.
| Indicator | What it answers | Scale |
|---|---|---|
| Pressure | How much timing signal is active at once, at this day’s strongest instant | 0–100, calibrated to your chart |
| Tier | Where this day sits on your own chart’s five-year distribution | Low · Light · Moderate · High · Intense |
| Convergence | Which multi-day spans carry several overlapping contacts, and where each one peaks | Days, with a peak span |
| Plateau | Which days or hours the measurement genuinely cannot separate | A range, never a single point |
| Indicator | What it answers | Scale |
|---|---|---|
| Peak significance | How strong this contact gets at its best moment, across a stated span | 0–100, with the span always printed |
| Contribution on a date | How strong this contact is on one specific day | 0–100 |
| Energy share | This contact’s exact piece of one day’s total | % of the day; all active contacts sum to 100% |
| Excess share | Its piece of what the day carries above the level its contacts normally hold | % of the excess |
| Dynamics | Whether this contact is standing background or a dated event | background · event · arriving · departing |
| Tightness | How near to geometrically perfect the angle is — not how strong it is | 0–100% closeness |
| Exactness | Whether this contact actually crossed 0°00′, and when | A timestamped crossing, or a closest approach with its orb |
| Indicator | What it answers | Scale |
|---|---|---|
| Calibration | Your chart’s own scale constant, derived once from your geometry and frozen | A per-chart constant |
| Tier cuts | Where High and Intense fall on your five-year distribution | Two integers, per chart |
| Ceiling | The strongest single contact that can physically exist on your chart | 0–100 |
| Horizon | When your chart next reaches its own top tiers, and what anchors those episodes | Dated episodes, with contacts |
Three pairs the category collapses — and why they measure different things.
| Not this | This | Why they differ |
|---|---|---|
| One number for a season and for a day | Peak significance, or contribution on a date | A slow contact can be enormously significant across a season and contribute modestly to any one day of it. Both numbers are correct; they answer different questions, so they carry different names, and every printed instance states which span it belongs to. |
| Tightness reported as strength | Tightness, or strength | Tightness is not strength. Tightness is pure geometry — how close to perfect the angle is. Strength additionally weights the aspect type and the moving body, so two contacts can be identically tight and differ enormously in strength. |
| A closest approach dressed up as exact | “Exact” means a real 0°00′ crossing | A closest approach prints as a closest approach, with its orb — in the report, the app and the calendar feed alike. |
Reporting one as the other is the single most common error in the category; Cosmic KPI labels them separately everywhere they appear.
Six stages, from astronomy to placement.
Knowing which stage a number came out of tells you what it can and can’t mean.
Skyfield, an MIT-licensed astronomy library, reading the DE440 planetary ephemeris published by NASA’s Navigation and Ancillary Information Facility at the Jet Propulsion Laboratory — computes real positions for your birth moment and for every hour of the window you’re scanning.
This stage is not a model. It’s astronomy, precise to fractions of an arcsecond.
The analysis layer finds every aspect the moving sky makes to your natal points inside a fixed 3° envelope, tracking each one continuously.
A contact isn’t a single event but a curve, from the moment it comes into orb to the moment it leaves.
Applying or separating, read off the direction the planet is actually moving.
Each exact hit is solved for by interpolation, not snapped to the nearest sampled hour — a contact that perfects at 2:20pm is recorded at 2:20pm.
A slow planet crossing a natal point during a retrograde cycle perfects three, sometimes five times over several years, each pass found and dated separately, because that’s usually where the real story is.
Each contact’s strength decays smoothly from a maximum at 0°00′ to exactly zero at the edge of the envelope, then combines with the aspect weight and the moving body’s weight.
Smoothly matters: there are no cliffs where one arcminute changes the answer. A Saturn square is not a Moon trine, and the arithmetic knows it.
House placement supplies the where.
None of this is hidden. The orbs and the weights are visible — they’re the model, and you’re entitled to see the model.
Three decisions: sub-additive aggregation, per-chart calibration, percentile tiers.
The Transit Pressure score is where the most design thinking lives, so it’s worth being precise about three choices most people never see.
One consequence reframes most of what people expect from a transit report. On the audited chart — the one real chart every per-chart figure on this page is measured on, calibration 2.126 — the strongest single contact that can physically exist, heaviest body, exactly perfect at 0°00′, scores 47 out of 100.
That is Low: the bottom band of five, 38 points under that chart’s High cut of 85. No single transit, however exact, reaches the top tiers alone. The top tiers count simultaneity, not exactness.
Strongest single contact that can exist — Pluto exactly conjunct a natal point, 0°00′ — scores Low on this chart
Only the floors are fixed: Low starts at 0, Light at 64 and Moderate at 73, on every chart. High and Intense are derived per chart from your own five-year distribution — so Moderate’s ceiling moves with them: 73–84 is this chart’s band, ending one point below its own High cut. The 85 and 90 drawn here are the audited chart’s own; a chart without a current derivation falls back to the fixed 80 and 92 named above.
The ceiling moves inversely with the calibration constant — across the calibration set, the six charts the model is measured against, it ranges from 41 to 72, and the more heavily hit a chart is, the lower its ceiling — so the same perfect transit is worth less on a chart that gets more of them.
Audited chart · calibration 2.126 · tiers day-score-v1 rev 1 · epoch 2024-01-01/1827d/ff257696
The same day decomposed twice: share of the day, share of the excess.
Open any indicator and you get its sources, not just its conclusion. A high-pressure Tuesday decomposes into the specific contacts driving it — each one named, with its orb, its weight, and its exact share of the total.
The shares are a true partition: every active contact’s energy share sums to 100% of the day with a residual of exactly zero, so you can see whose day it actually is.
Because the aggregation isn’t a sum, “what would this day lose without this contact” and “whose energy is this day made of” are genuinely different questions with different answers. Cosmic KPI computes and prints both, labeled.
| Contributor | Share of the day | Share of the excess | What it tells you |
|---|---|---|---|
| Background | 29.5% | 11.8% | It had been standing at roughly that strength for three months — which is why the whole season reads in the seventies, and why the largest share of the day is not what lifted it to 81. |
| Event | 24.1% | 45.5% | What made that day different from a normal one. |
Cosmic KPI separates the standing floor from the event on top of it, and every row carries its dynamics — background or event — so you can see which is which.
A forecast item names its transiting planet, its natal point, the aspect, the orb, and the exact date it perfects.
A life-cycle window states plainly whether it was calculated from exact transit passes or projected from the mean cycle — because those are different kinds of claim, and an instrument that blurs them isn’t an instrument.
And because the arithmetic is deterministic, the same chart and the same settings always produce the same indicators. Not similar ones. The same ones.
Refresh the page in a year and Tuesday is still 81. The symbolism is yours to read. The math is never yours to guess at.
Some moments in the sky are sharp, and some are not.
Here is something most astrology software will not tell you: some moments in the sky are sharp, and some are not.
It does so at a definite instant — the geometry is steep, the angle is closing fast, and the moment of perfection is a real, findable point in time. Cosmic KPI finds it and reports it, and it is exact.
It can hover within a hair of perfection for days. There is no single instant. The moment of exactness isn’t hiding from us; it genuinely isn’t there.
It is often genuinely flat across the better part of a week. Asking which day was the peak is like asking which grain of sand is the top of a dune — there is an answer, but it isn’t a fact, it’s a rounding artifact, and printing it in bold would be a small lie told confidently.
The astronomy itself doesn’t define a minute, and any software that prints one is inventing it.
So when seven days in a row produce the same score, Cosmic KPI says “a seven-day plateau,” not “your peak day is the 12th.” When a day’s hours are too close to separate, it prints the span rather than inventing an hour.
Top-tier days arrive in episodes, often years apart.
The tiers are clustered, not spread. High days do not arrive as one every few weeks.
That is not a malfunction and not a bad reading — it’s what a chart actually looks like, and almost every product in the category hides it by grading on a curve that guarantees drama every week.
Cosmic KPI says so, quantifies it for your specific chart, and then tells you when your loud period actually arrives, with the dates and the contacts that anchor it.
The record you noted against in March is the record in September.
There’s a quiet failure in most reflective software: your history rots. Cosmic KPI is built so that doesn’t happen.
You write a note against something the app showed you. Six months later the app has regenerated its content, re-scored its rankings, rolled its window forward — and the thing you wrote against is gone, or subtly different, or now points at something else. Your past becomes unreadable.
Every indicator carries a durable identity derived from what it structurally is — this planet, this aspect, this natal point, this pass — not from where it happened to sit in a list on the day you looked. So the Saturn square you noted against in March is the same record in September. Not a regenerated approximation.
That is what makes the reflective loop actually function: notebook entries attach to indicators, each entry carries a snapshot of the sky at the moment it was written, and when the same theme recurs under the same signal type, the pattern surfaces on its own.
You don’t have to remember. That’s the instrument’s job.
Six guarantees that hold whatever the constants are.
These are properties of the system, not descriptions of it. Each one is asserted continuously in the test suite as well as being checkable from outside.
| Guarantee | How to check it |
|---|---|
| Determinism | Same chart, same range, same settings, same report — byte for byte. Generate it twice and diff it. Nothing is sampled, nothing is generated, nothing drifts. |
| The shares partition exactly | Every active contact’s share of a day sums to 100% with a residual of exactly zero — asserted against randomized cases and every real day of every report. |
| Display filters never move the score | Turn planets off and the curves leave the chart; the number does not move by a point. The score is always computed from the full canonical body set — including the Moon, which is scored but hidden by default because its contacts are brief and numerous enough to crowd a chart without moving the number much. We say that on the filter itself, not only in a footnote. |
| Ranking survives every transform | More signal always means a higher-or-equal score. Comparisons are settled on the exact underlying axis and only rendered on the display scale, so no ordering is ever an artifact of rounding. |
| Every number carries its span | A peak states what it’s the peak of. A contribution states its date. A range states its endpoints. No unqualified number appears anywhere in the product. |
| One word, one meaning | “Exact” means a real 0°00′ crossing, everywhere, in every surface. A closest approach prints as a closest approach, with its orb. |
Provenance: which version produced this report, and why two differ.
When something improves, you can tell which version produced which report and why two of them differ. Reports are documents, and documents that can’t explain their own provenance aren’t worth keeping.
Behind that, every substantive change to the measurement layer is written up: what was measured, what was found, what changed, and what was deliberately not changed and why — including the findings that went against expectation.
Proposed improvements have been measured, found to make the product worse, and rejected on the evidence rather than shipped because they sounded sophisticated.
Broadcast, frozen, or computed — three different kinds of claim.
Every signal is anchored to a measurable event in the sky, and every signal lives in time — it builds, peaks, separates, and repeats. That’s what makes it useful for planning rather than description.
And the interpretation layer stays firmly separate from the measurement layer. You always know which part is astronomy and which part is reading. That boundary is not a design detail; it’s the product.
One operational view of your timing — each part has a home.
The goal is one operational view of your timing: what’s active now, what’s building, what peaks soon, what’s separating, and what’s echoing from an earlier cycle.
What the measurement is, what it isn’t, and what it doesn’t know.
The platform produces exactly what the name promises.
Cosmic KPI can promise Key Planetary Indicators because that’s literally what the platform produces: structured, dated, scored, inspectable records of planetary timing. The name and the architecture are the same claim, made twice — once to a first-time visitor, and once in the data model.
And as the platform grows, new capability extends the same indicator model — deeper calendar integration, richer cycle packs, wider research coverage — rather than getting bolted on beside it.
See your own indicators
Open this model inside the instrument it describes — every surface in the app is a lens on the same measured dataset, one click from here. No account needed to start.
Open Key Planetary Indicators in Cosmic KPI →