Editorial Standards, Authors and Corrections

The brief, the eight checks, the corrections address, and a straight answer about how much of the drafting is done by a machine.

Zodiux is written by a small team that also writes its code, published under one organisational byline: the Zodiux editorial team. Every interpretation is written against a fixed brief — describe the traditional meaning of a placement, in plain language, without flattery and without prediction. Drafting is machine-assisted, and this page says exactly where and how. Before a page ships it has to clear eight conditions that exist as a script rather than as a policy document, and the last-reviewed date on each page is derived from that page's own content rather than stamped by a build, so it moves when the words move and not before. If something here is wrong, hello@zodiux.io reaches the people who can change it.

Who writes this

The byline is an organisation, not a pen name. It covers a small group that writes both the copy and the software underneath it. There is no separate content department: the person who can tell you why the rising sign disappears when you leave the birth time blank is the person who wrote the branch that removes it. That is why the pages in this cluster can quote the behaviour of the shipped code line by line instead of describing it from a distance.

We do not publish an invented astrologer persona. Plenty of sites do — a stock portrait, a warm first name, a paragraph about a lifelong fascination with the stars. It is a cheap way to look accountable, and it is a fabrication placed at exactly the point where a reader is deciding whether to believe anything else. The operating entity behind Zodiux is not published yet either, because company registration is still in progress; write to us and the reply states the current position rather than a placeholder.

What accountability looks like here is narrower and more useful than a face: every factual claim traces to a file in this repository that produced it, this cluster names those files, and one address reaches a person who can change them. In the structured data on every page the site builds, the author is an Organization called the Zodiux editorial team whose url is this page — so the machine-readable byline and the human-readable one point at the same statement of who is responsible.

The brief every interpretation is written against

Interpretation is the part of an astrology site that cannot be checked against an ephemeris, so it is the part most worth constraining in advance. The brief below is fixed. It is not a style preference — it is what separates describing a two-thousand-year-old tradition from telling a stranger what will happen to them.

The brief, in full

The brief applied: drafts that fail it, and what ships instead
RuleA draft that failsWhat ships
Describe, do not predictSaturn returns to your sign this year, so expect a promotion by autumn.Saturn's tradition is structure and time, and a Saturn transit is read as a stretch where a commitment gets tested. That is a theme, not a schedule.
No flatteryAs a Leo, your natural magnetism draws people to you effortlessly.Leo's tradition is visibility: it wants the thing it does to be recognisably its own. The cost of that is a low tolerance for being overlooked.
Name the traditionThe second decan of Taurus is ruled by Mercury.The two surviving decan systems disagree here. The triplicity decanate gives it Mercury; the older Chaldean face gives it the Moon. Every decan page prints a three-row table — sign ruler, Chaldean face, triplicity decanate — and says in the following paragraph which of the two most sites are quoting.
Concrete before adjectivesYour rising sign is deeply significant and shapes everything about you.The rising sign changes roughly every two hours on average, which is why an hour of doubt in your birth time moves it about half a sign while barely moving anything else. Birth time and time zones shows where that average badly understates the error.
Limitation in the textA compatibility percentage printed on its own, explained only by a footer disclaimer.Every compatibility page prints its own arithmetic — the element term, the modality term and the aspect modifier that produced that pair's four scores — and links to the published formula.

A draft that breaks one of these is rewritten, not softened. The brief is also what the interpretation corpus is generated and judged against, which is covered at the foot of this page.

Computed material and written material are kept apart

Two different kinds of claim live on this site and they are produced by two different processes. A planetary position is a computation: it is reproducible, it can be checked against any other ephemeris, and if it is wrong it is a bug. An interpretation is prose about a tradition: it can be faithful or unfaithful to that tradition, but it cannot be verified the way a longitude can. Mixing the two — letting a written passage assert a number, or letting a computed number carry an implied meaning — is how astrology sites end up making precision claims they cannot support.

So the site keeps them separate by construction. No reading anywhere states a figure that the code on its own page did not compute: the degrees on a chart, the percentages on a compatibility page and the ranges on a decan page are all substituted into the template at build time or in your browser. Where an editorial page like this one quotes a constant — a word floor, a horizon in days — it names the file the constant lives in, so the number is checkable rather than merely asserted. The table below is the whole ownership map.

Every content type on Zodiux: who owns it, what triggers a review, where its numbers come from
Content typeWho owns itWhat triggers a reviewWhere its numbers come from
Planetary positions — birth chart, moon sign, retrograde trackerCode. No editorial input at allA change to the vendored ephemeris, a change to the chart script, or a reader reporting a discrepancyAstronomy Engine, an open-source implementation of the VSOP87 and NOVAS algorithms, reporting geocentric apparent ecliptic longitude
The Today's sky strip on sign, learn and decan pagesCode. Precomputed at build time, one row per dayAny change to the sky builder; otherwise it corrects itself in the browser with no human involvedThe same ephemeris as the calculator, baked into a 150-day almanac the page reads client-side (the horizon is ALMANAC_HORIZON in sky-build.mjs). Past that horizon the strip drops its date claim rather than lying
Compatibility scoresCode, from a published formulaAny change to the formula, which is never made silently — the model page is updated in the same editElement and modality tables plus an aspect modifier for the distance between two signs, all published at How compatibility scores work
Sign, decan and compatibility interpretationsEditorial, written against the brief aboveA correction, a change to the astronomy or the model underneath the page, or a scheduled passNo numbers of their own. Any figure in the prose is one the code on that page computed
Methodology and library pages, including this oneEditorial, written against the shipped codeAny change to the code or the policy the page describes — that is the primary trigger, ahead of the calendarRead out of this repository, with the owning file named in the page's own sources list
Terms, privacy and promotion rulesNot editorial. One configuration file, applied by a scriptA change to the operating facts. A check script exits non-zero while any of them is unfilledStated facts about the operator, not derived values
Ads and affiliate placementsConfiguration, reviewed against network policyA policy change, or a placement a check rejectsNothing. No placement feeds any score, reading or ranking anywhere on the site

The sky strip is the row worth reading twice, because it is the one that has actually gone wrong. Its scheduled rebuild failed silently for five weeks in 2026 and the baked strips froze; the fix was to stop depending on the schedule, which is why the almanac exists. Data sources tells that story with the dates and the cause.

The eight conditions a page has to clear

The rules above are only worth as much as their enforcement, and an editorial standard that lives in a document gets forgotten in week three. So the publication rule is a script. It reads every URL in the built sitemap, prints what failed and exits non-zero. It does not measure all eight conditions in that mode: five are checked on every URL, two of those only on pages matching a template family, and three — the structural ones about tables, methodology blocks and outbound links — are enforced by a per-page function the deploy path never calls. The thresholds below are the ones it actually uses, not a paraphrase.

The eight conditions, what each one measures, and the threshold it fails at
ConditionWhat is measuredFails when
Distinct intentFive-gram Jaccard overlap against every other page in the same family, then words multiplied by one minus that overlap — roughly how much of a page its most similar sibling does not also sayA methodology page overlaps its nearest sibling by more than 35%, or has fewer than 600 words its sibling does not share
Original analysisAt least one table or ordered list, plus the depth floor for the page's clusterA page is all paragraphs, or falls under 1,200 words as a core guide, 700 as anything else
Who produced it, and whenA visible byline and a real last-reviewed date in a time elementEither is missing
Method and sourcesThe method and limits panel, plus a sources list once the page states a measured figureMethod or limits is missing. The sources rule only warns — it is the one soft edge in the whole script, and it is soft because a page can state a figure it borrowed from a sibling page it links
Links outAt least one link to a Zodiux tool, at least three related links, and no link to itselfFewer than either, or the page recommends itself
A complete answerThe depth floor again, and the number of content sectionsUnder the floor, or fewer than three sections
Content around the adsWords of body copy before the first ad slot; on a tool page, whether the slot sits above the calculator's own outputAn ad on a tool page precedes the tool's live output, or an editorial page's first slot has under 120 words in front of it (the stricter 250 floor belongs to a per-page check the deploy path does not run)
Claim safetyA fixed list of phrase patterns for deterministic health predictions, promises of a certain result, instructions in regulated domains, and verdicts about someone's job or marriageAny pattern matches anywhere in the visible text, with one named exemption explained below

Two rows in that table are worth expanding. The ad rule is why the first unit on this page appears where it does: the renderer places it after the first 300 words of real body copy, and the check fails anything under 250, so the margin is deliberate rather than lucky. And the near-duplicate rule is measured in words rather than in a ratio, because a ratio punishes a family for explaining its shared model well — adding a genuine methodology block to all 78 compatibility pages raised their overlap while nearly doubling the unique material on each. The quantity that matters is how much a page says that its neighbour does not.

The claim scan has no exemptions, and that is worth recording because it briefly had one. What Zodiux does not claim was skipped, on the reasoning that a page publishing the scan's own patterns must trip all of them. Nobody tested the reasoning. When it was finally tested the page matched none of the eight — it describes the boundaries in prose rather than quoting the regexes — so the carve-out was protecting nothing while quietly falsifying that page's claim to be scanned like every other URL. It is gone, and the gate is clean without it.

The script checks one more thing that is not an editorial condition but belongs here anyway: if a page emits FAQ structured data, every question and every answer in that markup has to appear in the visible text. The check is shallower than that sentence implies — it compares only the first 60 characters of each, so a divergence later in a long answer would pass. Structured data on this site is not allowed to claim more than the page shows a reader; the automated half of that promise covers the opening of each answer, and the rest is review.

How the last-reviewed date on each page is derived

Most sites stamp a build date on every page and call it a review date. That asserts, several hundred times, that every page was revised today — which is false, and Google's own guidance treats a fabricated freshness signal as worse than no date at all. Zodiux used to do this. It no longer does.

The date you see is derived from the page's own content, by this sequence, on every build:

The derivation, step by step

  1. Each page is rendered with a placeholder token where the date will go — in the visible Last reviewed line and in the structured-data dateModified, the same token in both places.
  2. The rendered page is hashed with everything volatile stripped out: the Today's sky block, the dateModified value, the placeholder token itself, any ISO date and any month-name date. The hash is the first 16 hex characters of a SHA-1 over what is left, which is the page's real content.
  3. That hash is compared against the previous hash for the same URL, stored in a state file committed alongside the code. The state file is the freshness record, not a build artifact — delete it and every URL on the site gets a false freshness bump on the next build.
  4. Hash unchanged means the content did not change, so the page keeps the date it already had. Hash changed means the words moved, so the date becomes the build date, as a UTC calendar day.
  5. That single value is then written back into three places at once: the visible line, the structured-data dateModified, and the sitemap lastmod. They cannot disagree, because there is only one value and it is substituted after it is decided.

The stripping in step two is what makes the rest work. Every sign, learn and decan page carries a sky strip that genuinely changes daily, so hashing the raw HTML would move every date on every build and reproduce the batch stamp with extra steps. Stripping it means a rebuild that only advances the sky moves nothing, and a build in which nobody edited anything reports every URL unchanged.

There is one case the hash cannot see. A handful of pages are hand-authored and not emitted by the page builder, so there is no fresh render to hash. Those keep whatever date was last recorded for them rather than being stamped with today's, which under-reports an edit but never invents one. That was a real bug: the earlier version of this code stamped them on every build.

What puts a page back in front of a person

The middle column of the ownership table gives the trigger for each content type. Across all of them there are only three, and their priority order is not the order most editorial policies print.

In priority order

  1. An astronomy or code change. If the ephemeris is updated, the chart pipeline changes, or a model like the compatibility score is altered, every page that describes that behaviour is re-read in the same change. A methodology page that describes code it no longer matches is worse than no methodology page, because it converts a reader's trust into a wrong belief.
  2. A factual correction. A reader report, or something found internally. This jumps the queue, and it is the only one of the three that can arrive from outside. If the fault is in a computation rather than a sentence, it is fixed in the code and every page built from that code moves with it.
  3. A scheduled pass. Evergreen material is re-read on a rolling basis rather than all at once, oldest first. This is the weakest of the three on purpose: a calendar does not know which page is wrong.

Things that deliberately do not trigger a review, and do not touch the date: a rebuild, a deploy, a change to an advertisement, or the sky moving on. None of those changes what a page says, and a date that moved for them would be measuring our activity rather than the reader's interest.

Corrections

The methodology hub ends with the line corrections to this page are welcome and get made. It is meant literally rather than as a courtesy, and it applies to every page in the cluster.

The most useful report names the URL, quotes the sentence or figure that is wrong, and says what it should be. For a computation, a birth moment we can reproduce — date, time and city — is worth more than a description of the symptom, because it lets us run the same input through the same code. For an interpretation, tell us which tradition you are reading it against; where two traditions disagree we would rather print both than swap one for the other.

What happens after you send one

  1. It is reproduced, or we come back and ask for what is missing to reproduce it.
  2. If it is a computation fault, it is fixed in the code, and every page that derives from that code changes on the next build.
  3. If it is a written fault, the page is edited. Its last-reviewed date moves automatically, by the mechanism above, because the text changed.
  4. Nothing is quietly deleted to make a problem go away. A page that turns out to be wrong in a way we cannot fix is corrected in place or removed openly, not left up with the offending line pulled.

If you would rather check us than write to us, the birth chart calculation page carries a worked example with a specific birth moment and the exact longitude our code returns for it. Run it through any ephemeris you trust. A disagreement larger than rounding means one of us has a bug, and we would like to know which.

Ads, affiliate links and paid reports

Zodiux carries advertising, three affiliate cards on the chart page, and one paid product. Each is disclosed where it appears, and none of them can influence a reading.

Advertising. The units are Google AdSense, two on an editorial page. Each sits in a container labelled Advertisement — visibly above the unit, and again as an accessible label for a screen reader — and that container reserves its height before the ad arrives, so nothing below it jumps when the ad loads. If the network reports that it has nothing to serve, the container is hidden entirely rather than left as an empty box with a label on it. Placement is constrained by the check described above rather than by good intentions: on a tool page an ad may not appear above the calculator's own output, and on an editorial page the first unit lands after the first 300 words of body copy.

Affiliate links. Three cards, on the chart page only, below the reading rather than inside it. Each is marked sponsored and nofollow, opens in a new tab, and carries a required Why this is here line, two sentences as shipped — a card with no stated reason for existing does not ship, and one of the three says outright that it is decoration and changes nothing about your chart. Under the grid is a sentence saying a purchase may earn us a small commission at no extra cost to you. Two of the three are keyed to your sun sign; the third, a print of the chart you just generated, is keyed to nothing.

One more thing about those links, which most sites would leave out: today they earn nothing. The Amazon associate tag in the code is still an unfilled placeholder, and the craft-marketplace links are plain keyword searches with no affiliate wrapper at all, so every card is currently an ordinary product search. The disclosure is deliberately live before it is true rather than after, because the alternative is a period where the page earns a commission and does not say so.

Paid reports. A written report is our own product, not a third party's. It is also the one place where birth details are transmitted to us, because the report is rendered on the server rather than in your browser; the Reports page states that before payment. Data, privacy and saved chart links sets out exactly what is sent, what is stored, and for how long.

The free tools — the birth chart, the compatibility calculator, the moon sign tool — compute in your browser and never send your birth details anywhere. They are not silent, though, and the distinction is worth stating precisely: every page on the site sends a first-party pageview to our own counter, carrying the path and the referring host, with no cookie and nothing identifying in the payload — though like any API call it also bumps a rate-limit counter keyed on your IP, which expires two minutes later. That is measured traffic, not your chart; the privacy policy and the page above carry the full inventory of what is stored and where.

No advertiser or affiliate partner has ever seen a reading before it published, requested one, or been offered the opportunity. There is no mechanism by which they could: compatibility scores come from a formula published in full on this site, and planetary positions from an open-source ephemeris, so both are reproducible by anyone who wants to check.

AI assistance, stated plainly

Drafting on this site is machine-assisted. We would rather say so than let a reader work it out, because a reader who guesses and was not told is right to trust the rest of the site less.

Here is the shape of it, without euphemism. The interpretation corpus — the reads on sign, decan, aspect and compatibility pages — is produced by a build-time pipeline. A workhorse model drafts each unit against the brief above. A mechanical lint, which is ordinary code rather than a model, rejects it for length, for an empty field, or for a banned phrase. A second and stricter model judges what survives, scoring voice, specificity, thinness and safety separately and defaulting to failing anything it is unsure about. Near-duplicate detection by embedding similarity is designed and costed in the foundry's own notes but is not implemented — no such code ships, and saying otherwise would be describing an intention as a safeguard. What does run is the lint, the adversarial judge, and a person signing off, and only then does a unit enter the reviewed files. The judge is deliberately a different model from the generator, because a model grading its own output is a formality rather than a check. Data sources has the counts: how many units exist, how many a person wrote outright, and which surface each one reaches you on.

Longer editorial pages, this one included, are drafted with the same assistance and then checked line by line against the code they describe. The file this page is written in opens with a list of which source file every mechanism above was read out of, so the checking is repeatable by someone who is not us.

Three commitments go with all of that. Nothing is generated when you load a page — there is no model behind this site at read time, and your birth data is never sent to one. Nothing publishes unreviewed; the human gate is the part of the pipeline that is not automated, and it is not optional. And no page invents a human author to disguise how it was made.

How this page is made

Method. Every mechanism described here was read out of the shipped repository rather than summarised from an internal document. The byline, the Organization author whose url is this page, the date token written identically into the visible line and the structured data, and the 300-word rule that places the first ad all come from the library renderer. The date derivation is the strip-hash-compare-substitute sequence in the page builder, its SHA-1 truncation, its handling of pages it does not emit, and the committed state file it reads and writes. The eight conditions, their thresholds, the family floors and the FAQ visibility check are the checks in the quality-gate script, which exits non-zero on failure when it is run. The affiliate attributes, the required per-card reason, the disclosure sentence and the still-unfilled associate tag come from the one file that generates those links; the ad label and its collapse-on-unfilled behaviour from the ad markup and the stylesheet rule that hides an empty slot. The first-party pageview beacon is injected by the edge worker. The corpus pipeline and its human gate come from the foundry's own documentation and judge. The decan example in the brief table was computed by running the site's own rulership functions: for the second decan of Taurus, the Chaldean face is the Moon and the triplicity decanate is Mercury.

Limits. This page describes a process; it cannot prove that the process was followed on any particular page, and no editorial standards page anywhere can. The publication gate is the closest thing to proof, and it measures shape rather than truth — it can tell that a page is deep, attributed, linked and free of instruction, not that a sentence in it is correct. It is also a script a person has to run, with no automated job behind it. This page does not publish a named individual editor, because none is published yet: the operating entity is still being registered, and inventing a persona in the meantime would defeat the purpose of the page. The last-reviewed mechanism measures text change rather than attention, so a review that finds nothing to fix leaves no trace. Ad creatives are served by a third-party network and are not reviewed by us before they appear. And none of this makes astrology true: the standards govern how faithfully a tradition is described, not whether the tradition describes anyone. It is for reflection and entertainment, not advice.

Sources.

Written and reviewed by the Zodiux editorial team · Last reviewed · Editorial standards and corrections · Astrology is for reflection and entertainment, not advice.

The standards exist so the tools can be trusted

Every rule on this page is in service of one thing: that the numbers you get are real and the words around them are honest about what they mean. Run your own chart and check us.

Common questions
Who actually writes Zodiux?

A small team that also builds the site. Pages are bylined to the Zodiux editorial team rather than to an individual, because no individual editor is published yet and inventing one would be a fabrication at exactly the point where trust is being decided. Corrections and questions reach the same people at hello@zodiux.io.

Is this site AI-generated?

Drafting is machine-assisted and this page says so in detail. Interpretations are drafted against a fixed editorial brief, mechanically linted, judged by a different and stricter model, checked for near-duplicates, and reviewed by a person before publication. Nothing is generated when you load a page — there is no model behind the site at read time — and every number comes from an open-source ephemeris or a published formula, not from a language model.

What does the last-reviewed date on a page actually mean?

The day that page's text last changed. It is derived by hashing the page with its daily sky strip and all dates stripped out, comparing that hash to the previous build's, and keeping the old date when nothing changed. The visible date, the structured-data dateModified and the sitemap lastmod are all set from that one value, so they cannot disagree. It does not mean the day a person last read the page.

What are the eight conditions a page has to clear?

A distinct intent rather than a near-duplicate of a sibling, original analysis in the form of a table or a worked list, a visible byline and a real review date, a stated method and stated limits, links to the relevant tool and to sibling pages, enough depth to answer the question, real body copy in front of any ad, and no health, legal, financial or deterministic-life claims. They exist as a script with numeric thresholds, which prints what failed and exits non-zero. The table on this page gives each threshold.

How do I report a mistake?

Email hello@zodiux.io with the URL and the sentence or figure that is wrong. For a computation, include a birth date, time and city we can reproduce. Computation faults are fixed in code and propagate to every page built from it; written faults are edited in place, and the last-reviewed date moves on its own because the text changed.

Do advertisers or affiliate partners influence what a page says?

No, and the structure makes it impossible to hide if they did. Compatibility scores are computed from a formula published in full on this site, and planetary positions come from an open-source ephemeris, so both are reproducible by anyone. Affiliate cards are marked sponsored and nofollow, sit below the reading with a visible disclosure and a stated reason for existing, and no partner sees or requests content before it publishes. As it happens the affiliate tag is still unfilled, so those links earn nothing at all today.

Why is there no named astrologer's byline?

Because there is no named astrologer. Zodiux describes traditional meanings of placements against a fixed brief and computes real positions; it does not sell the authority of a personality. When a named editor is published it will be a real person with a real role, not a stock photograph.

Does a page get re-reviewed even if nothing has changed?

Yes, on a rolling schedule, oldest first — but a review that finds nothing to fix leaves the date alone. That under-reports how often pages are read and it is the honest trade: a date that moved every time someone glanced at a page would carry no information at all.

Keep reading

All astrology guides How Zodiux works