Features / Guides / Sign Ingress
Every moment a body crosses a 30° sign boundary, resolved to the minute, with the classical dignity it picks up and the commodity attributions traditionally attached to that sign. This guide covers the method, every field, and which half of the screen is calculation and which half is quotation.
The zodiac used here is twelve equal 30° slices of the ecliptic, starting at 0°. An ingress is the instant a body's ecliptic longitude crosses one of those twelve boundaries. Give the module a date range and a set of bodies and it returns every crossing inside the range, in time order.
Finding them is a two stage search. First a daily grid: the longitude of each body is evaluated once per day and converted to a sign number 0 to 11. Wherever consecutive days report different sign numbers, a crossing happened in between. Daily sampling cannot skip a sign, because the fastest body in the list is the Moon at roughly 13° a day, which is under half a sign.
Then bisection inside that one day, halving the interval until it is 60 seconds wide. The reported instant is accurate to the minute, which is finer than any published ingress table.
That last line matters more than it looks. Bracketing on the sign index rather than on a target longitude is what makes a retrograde crossing need no special handling at all. See retrograde re-entries below.
Two different kinds of fact appear side by side in the results table, and confusing them would be the easiest mistake to make on this page.
| Column | Kind | Where it comes from |
|---|---|---|
| UTC, Body, Enters, Dir | Computed | The JPL DE421 kernel, by bisection. Reproducible, checkable against any other ephemeris. |
| Dignity | Derived | Worked out from the rulership and exaltation tables, not typed in. |
| Element, Ruler, Commodities | Quoted | Conventions recorded in the astrological literature. Copied here, with the source named. |
Every row carries a Source label so you can tell at a glance which tradition an attribution came from:
The full lookup table sits behind the Rulership reference panel under the results, collapsed by default. It lists all twelve signs with element, modality, traditional ruler, that ruler's metal, the commodity list and the source, plus the note describing each source. Open it once and you will not need to guess what any column means again.
"Virgo rules grains" is reported here because it is what the source says, not because this software has measured grain prices around Virgo ingresses and found anything. No such test has been run and no such claim is made. The dates are the computed part. Everything downstream of the dates is yours to test.
| Field | Accepted values | Default | What it does |
|---|---|---|---|
| Start date | 1900-01-01 to 2050-12-31 | Today | First day of the scan window. |
| End date | 1900-01-01 to 2050-12-31 | One year from today | Last day of the scan window. The range cannot exceed 10 years, or 2 years if the Moon is selected. |
| Bodies | Sun, Moon, Mercury, Venus, Mars, Jupiter, Saturn, Uranus, Neptune, Pluto | Sun, Mercury, Venus, Mars, Jupiter, Saturn | Click a chip to toggle it. At least one is required. |
| Frame | Geocentric or Heliocentric | Geocentric | Where the observer stands. Heliocentric strikes through the Sun and Moon chips, because neither has a heliocentric longitude of its own. |
The Moon enters a new sign every two and a half days, about 160 ingresses a year. Over a full ten year window that is roughly sixteen hundred rows, each one costing a bisection, and nobody reads them. Select the Moon and the range limit drops to two years. The form checks this before it sends anything, and the API checks it again.
Build a twelve month ingress calendar for the classical bodies.
The wheel is drawn above the ingress table, straight after the summary bar. Every event in the table has a mark on it, placed on the sign boundary the body actually crossed.
| Part | Meaning |
|---|---|
| Twelve coloured sectors | The signs, coloured by element. Fire red, earth brown, air blue, water teal |
| Sector label | Glyph, sign name, then the traditional ruler and its metal, for example Cancer, moon, silver |
| Dated tick | One ingress. The label carries the abbreviated body and the date, for example Ven 6 Mar |
| Green dot on a tick | A retrograde entry, meaning the body crossed that boundary going backwards |
| Outer degree ring | Absolute ecliptic longitude, 0 to 330 in thirties, so a sector boundary is always a round number |
The element colours are fixed hex values rather than theme colours, which is deliberate. They carry meaning, so they must not swap around between the dark chart on screen and the light one you print.
The centre of the wheel states it: 0° Aries sits at the East and longitude increases anticlockwise. That is not the astrological convention, which puts 0 Aries on the left. It matches the Square of Nine spiral instead, because being able to read both wheels the same way around is worth more here than matching a drafting habit from another discipline.
Look at the 0° Aries boundary in the picture above. Five ticks stack outward from it: Sat 14 Feb, Ven 6 Mar, Sun 20 Mar, Mar 9 Apr, Mer 15 Apr. Five bodies crossed the same boundary within about nine weeks, and the ticks are ordered so the sequence reads outward in time.
That is the thing a date-sorted table hides. In the table those five rows are scattered among the other forty-two, sorted by date and interleaved with every other boundary crossing. On the wheel they are one visible stack, and the question of which boundaries were busy in your window answers itself.
A retrograde entry is worth flagging because the body will usually cross that boundary again, forward, later. It is a marker of the geometry, not a rating. See retrograde re-entries below for what the app does with them.
| Column | What it is | How to read it |
|---|---|---|
| UTC | The crossing instant | Universal time, to the minute, seconds truncated. Convert to your own timezone yourself. There is no local time option, deliberately, so two users comparing notes are always comparing the same number. |
| Body | Which body crossed | One row per crossing per body. |
| Enters | From sign → to sign | The sign left and the sign entered. |
| Dir | D or ℞ | D is a direct crossing, forward through the zodiac. ℞ is a retrograde crossing, backwards into the previous sign. |
| Dignity | Zero, one or two badges | The essential dignity the body holds in the sign it just entered. Green for rulership and exaltation, red for detriment and fall. |
| Element, Ruler | Quoted properties of the entered sign | Fire, earth, air or water, and the traditional ruling planet. |
| Commodities | Quoted attribution | Not a prediction and not a computation. See the Source column beside it. |
| Source | Gann, Traditional or Modern | Where that commodity attribution came from. Gold means it came from Gann's Astro Course. |
If the range holds no crossings for the bodies you picked, the module says so rather than showing an empty table. That is common with the outer planets, which sit in one sign for years. Pluto spends between twelve and thirty years per sign.
A planet in retrograde motion can cross a boundary, back over it, and cross it again. Mercury does this several times a year. The module reports all three crossings, and that is a design decision, not an oversight. Those repeat crossings are precisely what an ingress calendar in the Gann style is looking for: a boundary worked over three times across a few weeks, rather than passed once.
The boundary degree recorded for an event is the degree actually crossed. For a direct crossing that is the start of the sign being entered. For a retrograde crossing it is the start of the sign being left, because that is the same line approached from the other side.
A direction of unknown would mean the sign index moved by something other than one step forward or one step back between consecutive days. That cannot happen for any body in this list at daily sampling. If you ever see it, the run is wrong and worth reporting.
Four classical essential dignities are reported, and only two tables are stored:
| Dignity | Meaning | How this module gets it |
|---|---|---|
| Rulership | The body rules the sign it entered | Stored table, traditional (pre-Uranus) scheme. |
| Exaltation | The sign is the body's exaltation | Stored table. |
| Detriment | Opposite the body's rulership | Derived: the sign six places along from the one it rules. |
| Fall | Opposite the body's exaltation | Derived: the sign six places along from its exaltation. |
Deriving detriment and fall rather than storing them means the four can never drift out of step with each other. A body can hold two dignities at once, which is why the column shows a list. Mercury entering Virgo is both ruler and exalted, and gets two badges.
The traditional rulership scheme is used throughout, because that is the scheme Gann and his contemporaries worked with. Modern outer planet rulerships (Pluto for Scorpio, Uranus for Aquarius, Neptune for Pisces) are recorded in the reference panel for completeness and are never used to derive a dignity. Uranus, Neptune and Pluto therefore never show a dignity badge.
One row per ingress, saved as ingresses_<start>_<end>.csv. Multiple dignities are space separated in one field, the commodity list is comma separated inside quotes. The attribution_source column travels with the data, so the distinction between computed and quoted survives the export into your spreadsheet.
It does not tell you that a market turns when a planet changes sign. It has not been back tested against price and makes no such claim. It answers one narrow question exactly: when does each body cross into the next sign, and what do the classical tables say about that sign.
| Mistake | What happens | Fix |
|---|---|---|
| Selecting only outer planets over a short range | Zero results, and it looks broken | Nothing is wrong. Pluto sits in one sign for decades. Widen the range or add a faster body. |
| Adding the Moon to a ten year range | The form refuses to run | Cut the range to two years, or drop the Moon and use the Ephemeris module for lunar detail. |
| Reading UTC as local time | An ingress lands on the wrong side of a session boundary | Convert it. Brisbane is UTC plus 10, with no daylight saving. |
| Treating the commodity column as a signal | A quoted convention gets mistaken for a tested result | Read the Source column and the reference panel. None of it has been tested against price here. |
| Assuming three Mercury rows are a bug | Duplicate crossings get filtered out by hand | They are retrograde re-entries and they are the interesting part. Check the Dir column. |
| Expecting a dignity badge on Uranus, Neptune or Pluto | The column looks empty | The traditional scheme predates all three. They hold no essential dignity by design. |
Ingresses are charged on the length of the range, at 2 units per year scanned, with a floor of 1 unit. The number of bodies does not change the price.
| Date range | Units charged |
|---|---|
| 6 months | 2 |
| 1 year, the default | 2 |
| 2 years | 4 |
| 5 years | 10 |
| 10 years, the maximum | 20 |
The classical tables on their own are free. Fetching the rulership reference computes nothing, so it costs nothing. Only a dated scan is charged.
Units reset daily at midnight UTC, and a failed request costs nothing, because usage is recorded only after a computation succeeds. See pricing for the daily allowance on each plan.
Crohamhurst is a calculation tool. It produces dates, degrees, levels and tables. It does not produce recommendations, signals or forecasts, and nothing in this guide is financial advice. Trading carries risk of loss.